2016-08-31 3 views
0

나는 stackoverflow 커뮤니티가 도움이 될 것이라고 생각합니다. 내가 파이썬에서 POST API를 사용하여 SMS를 보내려면 여기에 내가 시도 무엇 : 나는 심지어이 요청 URI를 시도Twilio - 리소스 api를 통해 SMS 보내기

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>" 

:

>> response = requests.post('https://api.twilio.com/2010-04-01/Accounts/my-account-sid:my-auth-token/Messages', data=post_data) 
나는 다음과 같은 오류가

>> 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) 

여전히 같은 오류 : -/

내 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')) 

답변

1

Twilio 개발자 전도사는 여기에있다.

죄송합니다. 위의 문서를 찾을 수 없어서 죄송합니다. 바라기를 바랍니다.

누락 된 부분은 사용자의 SID 및 인증 토큰이 HTTP 기본 인증 credentials입니다.

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) 

당신이로 request to the Twilio API 말한다 당신에 대한 설명서, 당신은 다음과 같이 URL에 해당 자격 증명을 제공 할 수 있어야합니다 Python을 사용하면 Twilio Python helper library 공식을 더 쉽게 사용할 수 있습니다.

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 개체가 당신을 위해 그렇게 할 것입니다 요청을 인증에 대해 걱정할 필요가 없습니다 : 라이브러리를 사용하여 send an SMS message이 같은 비트가 보인다.

+0

감사합니다. 나는 또한 원래의 쿼리에서 빠진 것을 발견했다. 위의 설명을 추가했습니다. – doubleo