Конечная точка обмена токенами не вызывается после перенаправления конечной точки авторизации

Я создал свой первый проект Google Smart Home и реализовал две конечные точки для привязки учетных записей. Вызывается конечная точка авторизации, и мой код отвечает перенаправлением (302) на redirect_uri, предоставляя код авторизации, однако конечная точка обмена токенами никогда не вызывается. Привязка учетной записи запускается из пользовательского интерфейса Google Assistant при привязке устройства. Он входит в «Управление учетными записями». Я нажимаю отображаемое имя [test], оно переходит на сайт привязки моей учетной записи, а затем возвращается на экран «Управление учетными записями». Конечная точка обмена токенами не вызывается и, конечно, SYNC не происходит. Что я могу делать неправильно? Как я могу отладить поток? Я нигде не получаю ошибок ... Заранее спасибо за любые подсказки или помощь.


person Alex    schedule 09.01.2020    source источник
comment
Если вашему приложению не удается связать учетную запись, в журнале ошибок должен быть как минимум OPEN_AUTH_FAILURE или что-то в этом роде. Вы просматривали содержимое журналов StackDriver? developers.google.com/assistant/smarthome/develop/error-logging   -  person devunwired    schedule 10.01.2020
comment
Спасибо за ваш ответ. Я проверил журналы StackDriver, но ничего не нашел, кроме нескольких информационных сообщений о времени создания проекта. Есть ли какой-то конкретный ресурс, на который я должен обратить внимание?   -  person Alex    schedule 11.01.2020
comment
Я провел несколько экспериментов и заметил, что эта проблема возникает только тогда, когда я добавляю устройство с телефона. Я попробовал ту же процедуру со своего планшета, и вызывается конечная точка токена. Небольшое расследование показало, что мой телефон не знает, как обрабатывать протокол com.google.android.apps.gsa.gdi:, который, похоже, используется в качестве ответа на перенаправление. Я пытался удалить и переустановить помощника, но это не решило проблему... Предложения?   -  person Alex    schedule 11.01.2020
comment
Я хотел бы убедиться, что на вашем устройстве установлена ​​последняя версия приложений Google Home, Google Assistant и Google (Поиск).   -  person devunwired    schedule 13.01.2020
comment
Я дважды проверил. Все приложения Google на последнем уровне, и недавно я также получил системное обновление, которое я установил. У меня телефон Huawei P20 Pro (CLT-L09)... не знаю, как исправить.   -  person Alex    schedule 22.01.2020


Ответы (2)


Вы можете использовать Google OAuth Playground, чтобы убедиться, что реализация привязки вашего аккаунта работает правильно. Вот как вы можете настроить этот инструмент для проверки вашей конечной точки:

  1. Откройте шестеренку Настройки, измените Конечные точки OAuth на Пользовательские.
  2. Введите URL-адреса авторизации и токена в консоли «Действия».
  3. Введите свой идентификатор клиента и секрет из консоли действий.

Вы не будете авторизовывать какие-либо API Google, поэтому на шаге 1 вы можете просто ввести что-то вроде "устройства" и нажать Авторизовать API. Вы можете выполнить шаг 2, чтобы убедиться, что авторизация и обмен токенами работают правильно. Инструмент сообщит, если в потоке возникнут какие-либо ошибки.

Если вы можете успешно проверить реализацию привязки аккаунта, но по-прежнему видите ошибки при привязке с вашего устройства, сообщить о проблеме, указав сведения об устройстве и различных версиях приложений Google, которые вы используете.

person devunwired    schedule 22.01.2020

Я столкнулся с той же проблемой. Я решил это, удалив браузер Chrome на телефоне. Похоже, что процесс аутентификации при входе был инициирован в браузере, и браузер не смог перенаправить на протокол com.google.android.apps.gsa.gdi:. После удаления браузера аутентификация при входе была выполнена Google Home, и он смог распознать протокол и вызвать обмен токенами.

person Hemant Panday    schedule 02.06.2020