Как получить авторизацию от Nest через API Firebase?
Я новичок в программировании для Nest, и я не понимаю, как получить авторизацию от Nest через API Firebase.
Я хочу написать приложение в Android для доступа к информации об устройстве. Я уже зарегистрировал аккаунт в Nest и создал клиента из веб-интерфейса. Я получил URL авторизации на странице клиента и использовал расширение Chrome для создания 2 виртуальных устройств.
С https://developer.nest.com/documentation/authorization-overview я знаю, что мне нужно использовать метод на основе PIN, поэтому я использую следующий код:
Firebase ref = new Firebase("https://home.nest.com/login/oauth2?client_id=CLIENT_ID&state=STATE");
Log.i(TAG, "getParams " + ref.getParams());
Когда я регистрирую эту информацию, я получаю следующий журнал:
getParams {}
Может ли кто-нибудь помочь мне получить разрешение от Nest через API Firebase?
ОБНОВИТЬ
Я изучил сайт RIT, но есть некоторые вещи, которые меня все еще смущают.
Моя страница клиента содержит следующую информацию:
Client ID: b4bf4721-2***-4***-a***-c1a*********
Client secret: S578in************
Authorization URL: https://home.nest.com/login/oauth2?client_id=b4bf4721-2***-4***-a***-c1a*********&state=STATE
Access Token URL: https://api.home.nest.com/oauth2/access_token?code=AUTHORIZATION_CODE&client_id=b4bf4721-2***-4***-a***-c1a*********&client_secret=S578in************&grant_type=authorization_code
Когда я использую следующий код:
Firebase ref = new Firebase(Authorization URL);
Я ожидаю, что он вернет PIN-код, но это не так.
Кроме того, из https://developer.nest.com/documentation/how-to-auth, тема 3. Обмен вашего кода авторизации для токена доступа имеет команду:
"POST https://api.home.nest.com/oauth2/access_token?code=STRING&client_id=STRING&client_secret=STRING&grant_type=authorization_code"
Кто-нибудь знает, есть ли какой-нибудь firebase API, способный выполнить эту команду?
1 ответ
Авторизация выполняется в соответствии с протоколом OAuth 2.0, как только у вас есть токен, вы можете использовать Firebase API. Протокол Firebase не предоставляет прямой авторизации.