Я создал свой первый проект Google Smart Home и реализовал две конечные точки для привязки учетных записей. Вызывается конечная точка авторизации, и мой код отвечает перенаправлением (302) на redirect_uri, предоставляя код авторизации, однако конечная точка обмена токенами никогда не вызывается. Привязка учетной записи запускается из пользовательского интерфейса Google Assistant при привязке устройства. Он входит в «Управление учетными записями». Я нажимаю отображаемое имя [test], оно переходит на сайт привязки моей учетной записи, а затем возвращается на экран «Управление учетными записями». Конечная точка обмена токенами не вызывается и, конечно, SYNC не происходит. Что я могу делать неправильно? Как я могу отладить поток? Я нигде не получаю ошибок ... Заранее спасибо за любые подсказки или помощь.
Конечная точка обмена токенами не вызывается после перенаправления конечной точки авторизации
Ответы (2)
Вы можете использовать Google OAuth Playground, чтобы убедиться, что реализация привязки вашего аккаунта работает правильно. Вот как вы можете настроить этот инструмент для проверки вашей конечной точки:
- Откройте шестеренку Настройки, измените Конечные точки OAuth на Пользовательские.
- Введите URL-адреса авторизации и токена в консоли «Действия».
- Введите свой идентификатор клиента и секрет из консоли действий.
Вы не будете авторизовывать какие-либо API Google, поэтому на шаге 1 вы можете просто ввести что-то вроде "устройства" и нажать Авторизовать API. Вы можете выполнить шаг 2, чтобы убедиться, что авторизация и обмен токенами работают правильно. Инструмент сообщит, если в потоке возникнут какие-либо ошибки.
Если вы можете успешно проверить реализацию привязки аккаунта, но по-прежнему видите ошибки при привязке с вашего устройства, сообщить о проблеме, указав сведения об устройстве и различных версиях приложений Google, которые вы используете.
Я столкнулся с той же проблемой. Я решил это, удалив браузер Chrome на телефоне. Похоже, что процесс аутентификации при входе был инициирован в браузере, и браузер не смог перенаправить на протокол com.google.android.apps.gsa.gdi:. После удаления браузера аутентификация при входе была выполнена Google Home, и он смог распознать протокол и вызвать обмен токенами.