使用Python向手机发送语音验证码,需要工具有:
-
virtualenv 创建独立运行环境
-
帐号去调用相应的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会修改相关环境变量,让命令python
和pip
均指向当前的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 & Tokenclient = 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帐号,?
5、获取TWILIO帐号 SID , Token
6、TWILIO 试验账号只能给自己认证或的号码发送信息,或者去升级账号充值20刀,一次电话收费0.028刀~
7、点击号码,对号码进行配置,填写 需要的xml地址和获取方式GET、POST
8、填写 xml 获取地址,?
9、运行代码:
python phone_call.py
效果图: