使用Python向手机发送语音验证码,需要工具有:

  • virtualenv 创建独立运行环境

  • Twilio 帐号去调用相应的API

  • Twilio 的python库,5.7.0版本

1、使用 virtualenv 创建独立运行环境:

# 安装
pip3 install virtualenv # 相应的目录,创建环境
virtualenv --no-site-packages venv

使用参数--no-site-packages,后安装到系统Python环境中的所有第三方包都不会复制过来,这样,我们就得到了一个不带任何第三方包的“干净”的Python运行环境。

新建的Python环境被放到当前目录下的venv目录。有了venv这个Python环境,可以用source进入该环境:

source venv/bin/activate
(venv) firefly@firefly:~/phonecall$

注意到命令提示符变了,有个(venv)前缀,表示当前环境是一个名为venv的Python环境。

2、安装 twilio 运行库:

pip install twilio==5.7.0

venv环境下,用pip安装的包都被安装到venv这个环境下,系统Python环境不受任何影响。也就是说,venv环境是专门针对myproject这个应用创建的。

退出当前的venv环境,使用deactivate命令

virtualenv 就是把系统Python复制一份到virtualenv的环境,用命令source venv/bin/activate进入一个virtualenv环境时,virtualenv会修改相关环境变量,让命令pythonpip均指向当前的virtualenv环境。

3、编写 Python 代码phone_call.py:

#!/usr/bin/env python
# -*-coding:utf-8 -*-
from twilio.rest import TwilioRestClient # twilio 申请得到的号码 "+18568884457"
TWILIO_PHONE_NUMBER = "" # 需要拨打的号码 "+86188xxxxxxxx"
DIAL_NUMBERS = ["",] # TwiML 决定如何处理这段会话
TWIML_INSTRUCTIONS_URL = "https://demo.twilio.com/docs/voice.xml" # 帐号 SID & Token
client = TwilioRestClient("ACxxxxxxxxxx", "yyyyyyyyyy") def dial_numbers(numbers_list):
""" 发送语音指令 """
for number in numbers_list:
print("Dialing " + number)
# 设置请求方式为 GET 获得 XML指令
client.calls.create(to=number, from_=TWILIO_PHONE_NUMBER,
url=TWIML_INSTRUCTIONS_URL, method="GET") if __name__ == "__main__":
dial_numbers(DIAL_NUMBERS)

DIAL_NUMBERS 填写需要拨打的号码(加上区号),TWILIO_PHONE_NUMBER 和 TWILIO帐号 SID , Token 在 TWILIO控制台中获取

4、注册TWILIO帐号,

最新文章

  1. 【完全开源】知乎日报UWP版(下篇):商店APP、github源码、功能说明。Windows APP 良心出品。
  2. mvc自定义全局异常处理
  3. 从其它系统登录到SharePoint 2010系统的单点登录
  4. Qweb Pdf 中添加 图片
  5. 北京VR视频外包团队:全景VR视频科普
  6. Spring AOP使用整理:自动代理以及AOP命令空间
  7. html5 之 canvas 相关知识(一)概念及定义
  8. 【转】深入理解Java内存模型(六)——final
  9. (转)iOS分类和扩展(Categories和Extensions)
  10. Monkey源码分析之事件源
  11. [翻译]初识SQL Server 2005 Reporting Services Part 3
  12. Spring Boot Starter 介绍
  13. 解决No 'Access-Control-Allow-Origin' header is present on the requested resource.跨域问题(后台(java)解决方法)
  14. [JDK8]读写锁的改进:StampedLock
  15. flex和box-shadow一些兼容性问题
  16. 1209 -The MySQL server is running with the --read-only option
  17. maven(二)基于intellij idea搭建maven项目
  18. 第五次作业 hql查询
  19. 如何创建管理员权限的CMD命令提示符窗口
  20. LambdaMART简介——基于Ranklib源码(一 lambda计算)

热门文章

  1. (oneway void) release中oneway的意思
  2. Torch实现ReQU,和梯度验证
  3. Away3D引擎学习笔记(三)模型拾取(翻译)
  4. 02、Unicode 汉字转码小工具
  5. echarts报表
  6. oracle 存储过程学习感悟
  7. sort-uniq-cut-join命令练习
  8. Android——手机尺寸相关的概念 +尺寸单位+关于颜色
  9. svn:ignore 的用处
  10. C#连接手机安装软件和发送信息