Twilio - 通过资源发送短信 api

Twilio - send sms via resources api

希望 Whosebug 社区能帮助我。我想在 python 中使用 POST api 发送短信,这是我尝试过的方法:

>> post_data = {"To": "my-phone-number", "From": TWILIO_NUMBER, "Body": "Test message", "AccountSid": "my-account-sid", "AuthToken":"my-auth-token"}
>> import requests
>> response = requests.post('https://api.twilio.com/2010-04-01/Accounts/my-account-sid/Messages', data=post_data)

我收到以下错误:

response.content     
"<?xml version='1.0' encoding='UTF-8'?>\n<TwilioResponse><RestException><Code>20003</Code><Detail>Your AccountSid or AuthToken was incorrect.</Detail><Message>Authentication Error - No credentials provided</Message><MoreInfo>https://www.twilio.com/docs/errors/20003</MoreInfo><Status>401</Status></RestException></TwilioResponse>"

我什至试过这个请求 URI:

>> response = requests.post('https://api.twilio.com/2010-04-01/Accounts/my-account-sid:my-auth-token/Messages', data=post_data)

还是一样的错误:-/

是我的uri错误还是POST参数不完整?对于 POST api :-/

来说,文档并不是很好

更新: 仍在寻找答案的任何人,您可以查看已接受的答案或更新请求,如下所示:

response = requests.post('https://api.twilio.com/2010-04-01/Accounts/my-account-sid/Messages', data=post_data, auth=('my-account-sid', 'my-auth-token'))

这里是 Twilio 开发人员布道者。

抱歉,您没有发现这里的文档很棒。希望能帮到你。

您缺少的是您的帐户 SID 和身份验证令牌,正如您的 HTTP 基本身份验证 credentials. As the documentation on your request to the Twilio API 所说,您应该能够像这样在 URL 中提供这些凭据:

https://{AccountSid}:{AuthToken}@api.twilio.com/2010-04-01/Accounts

所以您的原始请求应该看起来像这样:

>> response = requests.post('https://{{ account_sid }}:{{ auth_token }}@api.twilio.com/2010-04-01/Accounts/{{ account_sid }}/Messages', data=post_data)

当你在使用 Python 时,你可能会发现使用官方 Twilio Python helper library. To send an SMS message 更容易,使用的库看起来有点像这样:

from twilio.rest import TwilioRestClient

account_sid = "{{ account_sid }}"
auth_token  = "{{ auth_token }}"

client = TwilioRestClient(account_sid, auth_token)

message = client.messages.create(body="Hello from Python",
    to= MY_PHONE_NUMBER,
    from_= MY_TWILIO_NUMBER)

这样,您就不必担心对请求进行身份验证,TwilioRestClient 对象会为您完成。