POST Nest API для получения токена доступа с помощью ESP8266 или Arduino

Я собираюсь использовать POST Nest API, чтобы получить токен доступа с помощью ESP8266 или Arduino. Я внимательно прочитал https://developers.nest.com/guides/api/how-to-auth#test_for_csrf_attacks и Вызов API гнезда с помощью esp8266 с помощью arduinoEDK

Я попытался выполнить POST api.home.nest.com с URL:/oauth2/access_token, но не знаю, на какой порт: я пробовал 80, 9553 и 443, но безуспешно.


person polweis    schedule 10.11.2018    source источник


Ответы (1)


Nest запускает свой API через HTTPS, который использует порт 443. Даже если они разрешили порт 80, вы не должны его использовать; вы будете передавать свои учетные данные или токен API в незашифрованном виде, что опасно.

Если ваш код работает на ESP8266, обязательно используйте библиотеку SSL. Недостаточно просто говорить по HTTP-протоколу с портом 443.

Вы не предоставили никакого кода, поэтому я не могу посоветовать что-то еще, но рассмотрите возможность использования класса BearSSL::WiFiClientSecure для вашего соединения.

Есть хороший пример этого на

https://github.com/esp8266/Arduino/blob/master/libraries/ESP8266HTTPClient/examples/BasicHttpsClient/BasicHttpsClient.ino

Вам нужно знать отпечаток SSL для сервера Nest. Вы можете найти это, запустив

openssl s_client -connect api.home.nest.com:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout | cut -d'=' -f2

в окне терминала на компьютере Mac или Linux. Отпечаток пальца позволяет вашему клиенту подтвердить, что сервер является тем, за кого он себя выдает.

Когда я пишу это, отпечаток пальца в настоящее время:

DE:AA:EB:EE:C0:4B:14:97:27:C8:29:46:5C:05:44:2C:26:DE:55:6B

Имейте в виду, что это может измениться со временем (или даже в зависимости от конкретного сервера, который обрабатывает ваш запрос), поэтому вам может потребоваться это изменить. Вы можете найти строку, которая вызывает client->setFingerprint() в примере по ссылке выше; вот где вы должны использовать отпечаток сервера.

person romkey    schedule 10.11.2018