У нас есть приложение, использующее навык Alexa с привязкой учетной записи для получения сведений о пользователе.
Согласно привязке учетной записи Alexa документация :
Наш навык настроен на привязку аккаунта, которая, в свою очередь, относится к третьей стороне (или может быть внутренней) Системой управления идентификацией (IMS) для аутентификации пользователя.Наше приложение (так же как и наша организация) НЕ поддерживает внутренние идентификационные данные пользователя приложения.
Скажем, пользователь включил наш навык на своем устройстве, и в этот момент (согласно вышеупомянутым документам) ему была выдана Alexaсгенерировал userId
, что-то вроде:
"userId": "amzn1.ask.account.AFMWOL5WIGQZLYYEMM2IJL2BJ26ICPQHBPR2DSLRX46CHW36R6CPVH7RZTUZMBCHHJLQQNU3YO2BWZWNIRTM3PCAGTNZKILK33PM2XVI36H4RSINFH2A26OLURAIB2RVPV6GMK56BR5BLBIFNJKT64EANASM7IDTQJBQLGDIEUZHUIM6VSHTTOUPVPITIPOIOPESUK53TSALU5I"
Следовательно, при дальнейшем взаимодействии со скиллом она хотела получить доступ к некоторой более персонализированной информации, которая активировала привязку аккаунта, поэтому ее личность была подтверждена и восстановлена через предоставленный аккаунт.сведения о связывании (профиль кода авторизации OAuth 2), которые при этом, как уже упоминалось ранее, связались со сторонней системой управления идентификацией (не LWA) для проверки личности пользователя:
- , с которой пользователю представляетсяна экране входа в систему
- она вводит свои учетные данные, скажем:
"alice"/"password123"
- она отвечает на соответствующие вопросы, чтобы разрешить определенные действия, которые наше приложение может выполнять от ее имени и
- разрешено в дальнейшем взаимодействовать с системой на более персонализированной бasis
Предположим, что внутри нашего приложения мы хотим иметь возможность идентифицировать пользователя по его реальному идентификатору userId: alice
, а НЕ одному, автоматически назначенному Amazon, как описано выше.
- Позволяет ли это Alexa?
- При успешном связывании аккаунта Alexa перезаписывает в своем JSON-запросе (или может каким-то образом передать его, наряду с теперь встроенным полем
accessToken
) в userId, который он получает от стороннего провайдера идентификации), чтобы«реальный» userId (на языке OAuth он называется subjectId?) затем может быть использован для идентификации действий пользователя во время ее дальнейшего взаимодействия с приложением?
Если да, как мы можем получить информацию о пользователе из JSON через Alexa Java API?
Если нет, то какие будут возможные способы облегчить такую способность?
Можно ли получить реальный userId из accessToken
этого Alexaвставляет свой запрос после аутентификации пользователя?Если да, то как?
Я не уверен, связано ли это с с этим , похоже, схожий запрос, он был добавлен в дорожную карту Alexa или уже стал функцией?