twilio python自动拨打电话,播放自定义mp3音频的方法


Posted in Python onAugust 08, 2019

有个小项目,需求是某事件发生时,给客户打电话,提醒客户。需要事先录制好一段音频,客户接通电话后,自动播放。

这里用到了twilio:https://www.twilio.com ,分享下。

1. 注册twilio账号

2. 买一个电话号码

twilio python自动拨打电话,播放自定义mp3音频的方法

3. 安装twilio

pip install twilio

4. trigger代码(给某个电话发送短信,或者打电话):

from twilio.rest import Client
# Your Account Sid and Auth Token from twilio.com/console
account_sid = 'XXX'
auth_token = 'XXX'
 
 
def sendCall(mobile):
 client = Client(account_sid, auth_token)
 url='你需要自己写一个url, 后面我会分享自己的django代码'
 
 call = client.calls.create(
  url=url,
  to='+86{}'.format(mobile),
  from_='你买的电话号码'
 )
 
 
def sendSMS(phone,content):
 client = Client(account_sid, auth_token)
 message = client.messages \
  .create(
  body=content,
  from_='你买的电话号码',
  to='+86{}'.format(phone)
 )
 
 
if __name__ == '__main__':
 sendCall("186xxxxxx")

5. 在django项目中准备一个路由,处理twilio发来的post请求,返回一段xml

url.py:

url(r'^notify/call/$',csrf_exempt(NotifyCall.as_view()), name='call'),
 view.py:

class NotifyCall(APIView):
 def post(self, request):
  temp = """<?xml version="1.0" encoding="UTF-8"?>
  <Response>
   <Play>一个公网可以访问的mp3文件路径,比如我用的自己的腾讯云服务器上的某个文件</Play>
   <Hangup/>
  </Response>
  """
  return HttpResponse(temp)

6. 理想情况下,就能完成打电话了。但是有个问题,当我接起来电话后,有差不多4~5秒的mute call时间。

分析log可以看到:

twilio python自动拨打电话,播放自定义mp3音频的方法

看来是因为twilio服务器在国外,从腾讯云获取文件花费时间太长。

于是:

7. 上传mp3到国外某个公共网站,让twilio从那里提取文件

twilio python自动拨打电话,播放自定义mp3音频的方法

1秒内就获取到了:

twilio python自动拨打电话,播放自定义mp3音频的方法

以上这篇twilio python自动拨打电话,播放自定义mp3音频的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python自动化工具日志查询分析脚本代码实现
Nov 26 Python
Python实现抓取百度搜索结果页的网站标题信息
Jan 22 Python
python集合类型用法分析
Apr 08 Python
python UNIX_TIMESTAMP时间处理方法分析
Apr 18 Python
Python存取XML的常见方法实例分析
Mar 21 Python
深入理解Python爬虫代理池服务
Feb 28 Python
不到20行代码用Python做一个智能聊天机器人
Apr 19 Python
Python实现微信消息防撤回功能的实例代码
Apr 29 Python
Python 日期区间处理 (本周本月上周上月...)
Aug 08 Python
关于pymysql模块的使用以及代码详解
Sep 01 Python
Python 去除字符串中指定字符串
Mar 05 Python
使用numpy实现矩阵的翻转(flip)与旋转
Jun 03 Python
Python 使用matplotlib模块模拟掷骰子
Aug 08 #Python
Pycharm远程调试原理及具体配置详解
Aug 08 #Python
Python IDE Pycharm中的快捷键列表用法
Aug 08 #Python
python多线程与多进程及其区别详解
Aug 08 #Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
Aug 07 #Python
python实现对图片进行旋转,放缩,裁剪的功能
Aug 07 #Python
Django 实现前端图片压缩功能的方法
Aug 07 #Python
You might like
解析php入库和出库
2013/06/25 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
使用CodeIgniter的类库做图片上传
2014/06/12 PHP
php计划任务之ignore_user_abort函数实现方法
2015/01/08 PHP
zen_cart实现支付前生成订单的方法
2016/05/06 PHP
PHP7 新特性详细介绍
2016/09/06 PHP
Laravel框架中自定义模板指令总结
2017/12/17 PHP
学习ExtJS Column布局
2009/10/08 Javascript
Jquery选择器中使用变量实现动态选择例子
2014/07/25 Javascript
javascript实现加载xml文件的方法
2015/11/24 Javascript
基于JavaScript实现添加到购物车效果附源码下载
2016/08/22 Javascript
把多个JavaScript函数绑定到onload事件处理函数上的方法
2016/09/04 Javascript
JavaScript Date 知识浅析
2017/01/29 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
js实现点击展开隐藏效果(实例代码)
2018/09/28 Javascript
学习python处理python编码问题
2011/03/13 Python
使用python绘制人人网好友关系图示例
2014/04/01 Python
Python中正则表达式的用法实例汇总
2014/08/18 Python
Python while、for、生成器、列表推导等语句的执行效率测试
2015/06/03 Python
Python的math模块中的常用数学函数整理
2016/02/04 Python
python安装oracle扩展及数据库连接方法
2017/02/21 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
tensorflow 用矩阵运算替换for循环 用tf.tile而不写for的方法
2018/07/27 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
python向企业微信发送文字和图片消息的示例
2020/09/28 Python
医学院护理专业应届生求职信
2013/11/12 职场文书
阳光体育活动方案
2014/02/16 职场文书
学校庆元旦歌咏比赛主持词
2014/03/18 职场文书
法定代表人身份证明书(含说明)
2014/10/02 职场文书
初中学生操行评语
2014/12/26 职场文书
学生评语集锦
2015/01/04 职场文书
三潭印月的导游词
2015/02/12 职场文书
拉贝日记观后感
2015/06/05 职场文书
交流会主持词
2015/07/02 职场文书
python 常用的异步框架汇总整理
2021/06/18 Python
Python中npy和mat文件的保存与读取
2022/04/24 Python