ESP8266 Micropython Twilio API - PullRequest
       6

ESP8266 Micropython Twilio API

0 голосов
/ 11 апреля 2019

Кто-нибудь имел успех, используя Twilio с Micropython на 8266?Я протестировал ниже в pyton3 и могу получить его, чтобы успешно отправить текстовое сообщение.Однако, когда я переношу его на micropython (ниже), сообщение не будет получено.Я вернулся в библиотеку Urequests, где я получаю ошибку, и увидел, что она дает сбой, потому что она передает данные в виде словаря (в строке 79 происходит сбой).Я попытался изменить его так, чтобы он передавался в виде строки, но затем кажется, что данные не отправляются в Twilio.

Реализация Python3

import requests

account_sid = "sid"
auth_token = "token"
url = "https://api.twilio.com/2010-04-01/Accounts/" + account_sid + "/Messages.json"
data = {'From': '+18005551234', 'To': '+18005551234', 'Body': 'Text Message'}

try:
    resp = requests.post(url=url, data=data, auth=requests.auth.HTTPBasicAuth(account_sid, auth_token))
    print(resp.status_code)
except Exception as exc:
    print("\nException occured.")
    sys.print_exceptin(exc)

Реализация Micropython

import urequests
import ubinascii

account_sid = "sid"
auth_token = "token"
url = "https://api.twilio.com/2010-04-01/Accounts/" + account_sid + "/Messages.json"
data = {'From': '+18005551234', 'To': '+18005551234', 'Body': 'Text Message'}
login = ubinascii.b2a_base64(account_sid.encode('utf8') + b':' + auth_token.encode('utf8'))
headers = {'Authorization': b'Basic ' + login, 'Content-Type': 'application/x-www-form-urlencoded', 'WWW - Authenticate': 'Basic realm = "Twilio API'}

try:
    resp = urequests.post(url=url, data=data, headers=headers)
    print(resp.status_code)
except Exception as exc:
    print("\nException occured.")
    sys.print_exceptin(exc)

РЕДАКТИРОВАТЬ: Похоже, что здесь ответили: Отправка SMS в twilio возвращает 21603: требуется номер «От» , но даже изменяя мои данные, я не могу получить сообщение для фактической передачи.Я изменил поле данных так, чтобы оно было «To =% 2B18005551234 & From =% 2B18005551234 & Body = Test», но, похоже, оно также не работает.

1 Ответ

0 голосов
/ 24 апреля 2019

За отличную поддержку в Twilio нужно добавить одну строку

login = login[:-1]

В конце логина в кодировке base64 есть символ новой строки, который необходимо удалить.

...