Twilio API的文档可以在此处找到。
可以在此处找到Python库文档。
twilio-python
使用修改版本的语义版本来进行所有更改。有关详细信息,请参见此文档。
该库支持以下Python实现:
使用Pip的PYPI安装Python的软件包管理器。
pip3 install twilio
如果PIP安装在Windows上失败,请检查目录的路径长度。如果是260个字符,则启用长路径或选择其他较短的位置。
没有安装PIP?尝试通过从命令行运行它来安装它:
curl https://bootstrap.pypa.io/get-pip.py | python
或者,您可以为twilio-python
下载源代码(ZIP),然后运行:
python3 setup.py install
信息如果命令行给您一条错误消息,该错误消息表示拒绝,请尝试使用
sudo
运行上述命令(例如,sudo pip3 install twilio
)。
尝试向自己发送短信消息。使用文本编辑器将以下代码示例保存到计算机。请确保使用Twilio帐户中的值更新account_sid
, auth_token
和from_
电话号码。 to
电话号码将是您自己的手机。
from twilio . rest import Client
# Your Account SID and Auth Token from console.twilio.com
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
message = client . messages . create (
to = "+15558675309" ,
from_ = "+15017250604" ,
body = "Hello from Python!" )
print ( message . sid )
将文件保存为send_sms.py
。在终端中, cd
到包含您刚保存的文件的目录,然后运行:
python3 send_sms.py
短暂延迟后,您将在手机上收到短信。
警告本地测试时可以进行硬码凭证,但是您应该使用环境变量在提交任何代码或部署到生产之前将其保密。查看如何设置环境变量以获取更多信息。
Twilio
客户需要您的Twilio凭据。您可以将它们直接传递给构造函数(请参见下面的代码)或通过环境变量。
用帐户SID和Auth Token进行身份验证:
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
使用API密钥和API秘密进行身份验证:
from twilio . rest import Client
api_key = "XXXXXXXXXXXXXXXXX"
api_secret = "YYYYYYYYYYYYYYYYYY"
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
client = Client ( api_key , api_secret , account_sid )
另外,没有这些参数的Client
构造函数将在当前环境中寻找TWILIO_ACCOUNT_SID
和TWILIO_AUTH_TOKEN
变量。
我们建议将您的凭据存储为环境变量。为什么?您永远不必担心承担凭证并不小心将其发布在公共场所。
from twilio . rest import Client
client = Client ()
为了利用Twilio的全球基础架构,为客户指定目标区域和/或边缘:
from twilio . rest import Client
client = Client ( region = 'au1' , edge = 'sydney' )
没有这些参数的Client
构造函数还将在当前环境中查找TWILIO_REGION
和TWILIO_EDGE
变量。
另外,您可以在构建Twilio客户端后指定边缘和/或区域:
from twilio . rest import Client
client = Client ()
client . region = 'au1'
client . edge = 'sydney'
这将导致hostname
从api.twilio.com
转换为api.sydney.au1.twilio.com
。
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
call = client . calls . create ( to = "9991231234" ,
from_ = "9991231234" ,
url = "http://twimlets.com/holdmusic?Bucket=com.twilio.music.ambient" )
print ( call . sid )
from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
call = client . calls . get ( "CA42ed11f93dc08b952027ffbc406d0868" )
print ( call . to )
该库自动为您处理分页。诸如calls
和messages
之类的集合具有引擎盖下页面的list
和stream
方式。使用list
和stream
,您可以指定要接收的记录数( limit
)以及想要每个页面获取为( page_size
)的最大大小。然后,库将为您处理任务。
list
急切地获取所有记录并将其返回为列表,而stream
返回迭代器,懒惰地检索记录的页面,因为您迭代了集合。您也可以使用page
方法手动页面。
list
方法 from twilio . rest import Client
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
for sms in client . messages . list ():
print ( sms . to )
默认情况下,Twilio客户端将向Twilio API提出同步请求。为了允许异步,非阻滞请求,我们提供了一个可选的异步HTTP客户端。当与客户端和随附的*_async
方法一起使用时,对Twilio API的请求将异步执行。
from twilio . http . async_http_client import AsyncTwilioHttpClient
from twilio . rest import Client
async def main ():
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
http_client = AsyncTwilioHttpClient ()
client = Client ( account_sid , auth_token , http_client = http_client )
message = await client . messages . create_async ( to = "+12316851234" , from_ = "+15555555555" ,
body = "Hello there!" )
asyncio . run ( main ())
将API请求和响应数据记录到控制台:
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ()
client . http_client . logger . setLevel ( logging . INFO )
将API请求和响应数据记录到文件:
import logging
client = Client ( account_sid , auth_token )
logging . basicConfig ( filename = './log.txt' )
client . http_client . logger . setLevel ( logging . INFO )
twilio-python
的8.x版本导出了一个异常类,可帮助您处理特定于Twilio方法的异常。要使用它,请导入TwilioRestException
并捕获异常如下:
from twilio . rest import Client
from twilio . base . exceptions import TwilioRestException
account_sid = "ACXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
auth_token = "your_auth_token"
client = Client ( account_sid , auth_token )
try :
message = client . messages . create ( to = "+12316851234" , from_ = "+15555555555" ,
body = "Hello there!" )
except TwilioRestException as e :
print ( e )
要控制电话,您的应用程序需要输出twiml。
使用twilio.twiml.Response
轻松创建此类响应。
from twilio . twiml . voice_response import VoiceResponse
r = VoiceResponse ()
r . say ( "Welcome to twilio!" )
print ( str ( r ))
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< Response >< Say >Welcome to twilio!</ Say ></ Response >
Twilio目前仅用于测试目的,目前仅使用该存储库中存在的Dockerfile
及其各自的twilio/twilio-python
Docker图像。
如果您需要安装或使用图书馆的帮助,请先检查Twilio支持帮助中心,并在找不到问题的答案时提交支持票。
如果您取而代之的是在库中找到一个错误,或者想添加新功能,请继续进行问题或对此仓库提取请求!