Хотя ответ @ pinoyyid был правильным, он не дал решения, поэтому я публикую его для дальнейшего использования.
Проблема заключалась в том, что серверы Amazon не получали токен обновления от Google, что делало невозможным обновление токена доступа по истечении одного часа.
После этой ссылки и других сообщений на форуме Amazon я нашел рабочее решение.
Конфигурация консоли привязки аккаунта Amazon Alexa:
- Тип разрешения авторизации: Предоставление кода авторизации
- URI авторизации: https://accounts.google.com/o/oauth2/v2/auth?access_type=offline (хотя один из учетных данных Google не был v2, это не должно иметь никакого значения)
Тип доступа очень важен , потому что, поскольку документация идет:
Установите для параметра [access_type] значение offline, если вашему приложению необходимо обновить токены доступа, когда пользователь отсутствует в браузере. [...] Это значение указывает серверу авторизации Google возвращать токен обновления и токен доступа при первом обмене кода авторизации вашим приложением для токенов.
- URI токена доступа: https://accounts.google.com/o/oauth2/token
- Идентификатор клиента и секрет: загружено на Google Cloud Platform
- Схема аутентификации клиента: HTTP Basic
- Список доменов: google.com и googleapis.com
- Срок действия токена доступа по умолчанию: оставлено пустым
Теперь, после этого и сохранения конфигурации, имейте в виду, что вы можете не заметить изменения, начиная с здесь :
Когда Alexa использует токен обновления для получения нового токена доступа для существующего пользователя, Alexa использует URI токена доступа, который был настроен в тот момент, когда пользователь связал свою учетную запись. Поэтому, если вы измените URI токена доступа позже, пользователи, которые ранее связывали свои учетные записи, продолжат использовать старый URI для получения обновленных токенов. Пользователи должны отсоединить и повторно связать учетные записи, чтобы переключиться на новый URI токена доступа.
Итак, для завершения процедуры:
- Отключить ваше умение
- Перейдите в сторонние приложения Google, которые имеют доступ к вашим данным , и удалите связанный с ним проект Google
- Повторно активируйте свое мастерство и снова войдите в систему (если все сделано правильно, он должен запросить у вас разрешения для области, которую вы указали в консоли разработчика Alexa
- Готово! через час вам следует повторить попытку, и у него должен быть обновленный токен доступа
Дополнительная информация
Я обнаружил, что многие предлагали получить токен обновления, но я не верю, что это возможно, потому что, даже если Google отправляет его, Amazon хранит его и использует для обновления токена доступа.
EDIT:
Это прекрасно работает для разработки и тестирования, но я обнаружил здесь , что для целей публикации вы должны владеть целевой страницей, на которую вы перенаправляете своих пользователей. Для меня было просто необходимо создать простую HTML-страницу, размещенную в общедоступной корзине S3, которая перенаправляла бы запрос на URI авторизации, который я написал ранее, тогда как URI токена доступа должен оставаться Google.