我有一个约50个电话号码列表,我需要通过Twilio的API发送相同的短信。我该怎么做(通过Python)?
我可以在for循环中这样做:
from twilio.rest import Client
client = Client(SID, AT)
for number in number_list:
client.messages.create(to=number, from_="+18328955063",body="foo bar")
但是,我不是多次点击Twilio的API,而是批量发送一个电话号码列表/列表,只需拨打一个API。那我该怎么做?有可能吗?
我正在设置后台异步任务来处理外发短信,理想情况下,当Twilio逐个处理消息时,我不希望我的任务等待很长时间。我只想发送一个数字列表作为有效载荷并完成它。
答案 0 :(得分:1)
Twilio开发者传道者在这里。
您可以使用Twilio Notify API来实现此目的。通知用于向多个平台发送通知,但包括SMS。
以下是你的表现:
首先,创建一个Notify service。
然后,您需要使用creating bindings的所有用户和Notify API注册所有用户及其号码。每个绑定都需要您系统中的某种身份(用户ID或类似身份)。
from twilio.rest import Client
account = "YOUR_ACCOUNT_TOKEN"
token = "YOUR_AUTH_TOKEN"
client = Client(account, token)
service = client.notify.services("YOUR_NOTIFY_SERVICE_SID")
for identity, number in user_dict.items():
service.bindings.create(
identity=identity,
binding_type="sms",
address=number
)
然后,要向一组用户发送通知,您只需为其身份创建通知:
service.notifications.create(identity=list_of_identities,
body="Hello world!")
这一次只需要20个身份,但是在创建绑定时也可以使用标记,或者segments发送更多标记。
让我知道这是否有帮助。
答案 1 :(得分:1)
notification = client.notify.services("ISXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX")\
.notifications.create(
to_binding=[
"{\"binding_type\":\"sms\",\"address\":\"+15555555555\"}",
"{\"binding_type\":\"facebook-messenger\",\"address\":\"123456789123\"}"
],
body="Hello Bob")
无需创建绑定, 顺便说一句,twilio可以接受10,000个数字
指定为JSON字符串的目标地址。可以包含多个to_binding参数,但请求实体的总大小不得超过1MB。通常,这足以容纳10,000个电话号码。