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
对象会为您完成。
希望 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
对象会为您完成。