Micropython ESP8266 Twilio 401 未经授权
Micropython ESP8266 Twilio 401 UNAUTHORIZED
我是 运行 ESP8266 上的 MicroPython。该代码应向 Twilio 的 restAPI 发送 SMS HTTP POST 请求。我试图让它与 urequests 一起工作。但我不断收到 401 UNAUTHORIZED 响应。请一些建议。代码:
import urequests
def send_sms():
twilio_account_sid = "{AcctSID}"
twilio_auth_token = "{AuthToken}"
from_phn_nbr = "+{FromPhoneNbr}"
to_phn_nbr = "+{ToPhoneNbr"))
twilio_proto = "https://"
twilio_host = "api.twilio.com"
twilio_path = "/2010-04-01/Accounts/{AcctSID}/Messages"
twilio_url = twilio_proto + twilio_host + twilio_path
twilio_data = "'From': '{from_phn_nbr}', \
'To': '{to_phn_nbr}', \
'Body': 'Hai'"
twilio_headers = {
'Authorization': 'Basic {AcctSID}:{AuthToken}',
'Content-Type': 'application/x-www-form-urlencoded',
'WWW - Authenticate': 'Basic realm = "Twilio API'
}
try:
resp = urequests.post(url=twilio_url,
data=twilio_data,
headers=twilio_headers)
print(resp.status_code, resp.reason)
except Exception as exc:
print("\nException occured.")
sys.print_exceptin(exc)
这里是 Twilio 开发人员布道者。
我不知道 urequests
库,但是在使用 HTTP 基本身份验证时,简单地连接用户名、冒号和密码是不够的。你也需要base 64 encode that concatenated string。
这就是我从您的实施中想到的全部内容。如果有帮助,请告诉我。
@dentex
使用 Postman:
- 填写选项卡Auth
- 转到选项卡 Headers
- 复制'Authorization'值
像这样将 'Authorization' 值传递到您的代码中:
twilio_headers = {
'Authorization': 'Basic QUMxMmZhNzFlYzU5MzZkNzYyMDYzNWM2Njg1NzNlZWNkNDo2OTBiY2Q5OTA2MDc3NmIzYmQ0NzgwOGE5ZTc2NmM5Yg==',
'Content-Type': 'application/x-www-form-urlencoded',
'WWW-Authenticate': 'Basic realm = Twilio API'
}
我是 运行 ESP8266 上的 MicroPython。该代码应向 Twilio 的 restAPI 发送 SMS HTTP POST 请求。我试图让它与 urequests 一起工作。但我不断收到 401 UNAUTHORIZED 响应。请一些建议。代码:
import urequests
def send_sms():
twilio_account_sid = "{AcctSID}"
twilio_auth_token = "{AuthToken}"
from_phn_nbr = "+{FromPhoneNbr}"
to_phn_nbr = "+{ToPhoneNbr"))
twilio_proto = "https://"
twilio_host = "api.twilio.com"
twilio_path = "/2010-04-01/Accounts/{AcctSID}/Messages"
twilio_url = twilio_proto + twilio_host + twilio_path
twilio_data = "'From': '{from_phn_nbr}', \
'To': '{to_phn_nbr}', \
'Body': 'Hai'"
twilio_headers = {
'Authorization': 'Basic {AcctSID}:{AuthToken}',
'Content-Type': 'application/x-www-form-urlencoded',
'WWW - Authenticate': 'Basic realm = "Twilio API'
}
try:
resp = urequests.post(url=twilio_url,
data=twilio_data,
headers=twilio_headers)
print(resp.status_code, resp.reason)
except Exception as exc:
print("\nException occured.")
sys.print_exceptin(exc)
这里是 Twilio 开发人员布道者。
我不知道 urequests
库,但是在使用 HTTP 基本身份验证时,简单地连接用户名、冒号和密码是不够的。你也需要base 64 encode that concatenated string。
这就是我从您的实施中想到的全部内容。如果有帮助,请告诉我。
@dentex
使用 Postman:
- 填写选项卡Auth
- 转到选项卡 Headers
- 复制'Authorization'值
像这样将 'Authorization' 值传递到您的代码中:
twilio_headers = {
'Authorization': 'Basic QUMxMmZhNzFlYzU5MzZkNzYyMDYzNWM2Njg1NzNlZWNkNDo2OTBiY2Q5OTA2MDc3NmIzYmQ0NzgwOGE5ZTc2NmM5Yg==',
'Content-Type': 'application/x-www-form-urlencoded',
'WWW-Authenticate': 'Basic realm = Twilio API'
}