Функция Alexa Lambda для получения полного имени пользователя - PullRequest
0 голосов
/ 13 ноября 2018

Используя навыки Alexa Custom и функции AWS Lambda, я хочу иметь возможность просто получить имя пользователя из его учетной записи. Я уже настроил разрешения и привязку аккаунта и проверил, что это работает. Однако для методов Python 3.6 нет доступных ресурсов для извлечения фактической информации о пользователе.

На этой странице есть метод, который мне нужно использовать ( get_profile_name () ): https://github.com/alexa/alexa-skills-kit-sdk-for-python/blob/master/docs/en/SERVICE_CLIENTS.rst#upsserviceclient

Однако он не дает мне информации о том, как я могу получить доступ к этому методу внутри лямбда-функции.

Моя основная функция запускается с:

def lambda_handler(event, context):

В событии есть только JSON из пользовательского ввода из пользовательского навыка Alexa, который не содержит имени, поэтому я застрял в том, как получить доступ ко всему, что имеет get_profile_name ()

Единственный пример, который я могу найти, это: https://forums.developer.amazon.com/questions/181267/new-sdk-and-python-36-progressive-response-sample.html

который использует

handler_input.service_client_factory.get_profile_name()

Но я не могу понять, как handler_input отличается от моего "события"

Я подумал, что было бы просто получить имя, но это довольно сложно. Кто-нибудь делал это раньше?

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

В вашем коде должны быть классы-обработчики для намерений вашего навыка с двумя методами:

can_handle(self, handler_input)

и

handle(self, handler_input)

Так вы получаете handler_input через параметр.

Есть похожий пример здесь , но для получения адреса.

0 голосов
/ 15 ноября 2018

См. документацию к API профиля клиента Alexa , чтобы узнать имя, адрес электронной почты и номер телефона клиента.

В этой документации подробно описан процесс запроса - вот пример из этой документации:получите номер телефона: Host: api.amazonalexa.com Accept: application/json Authorization: Bearer MQEWY...6fnLok GET https://api.amazonalexa.com/v2/accounts/~current/settings/Profile.name

Обратите внимание, что вы должны получить токен доступа для использования в качестве части запроса (способ получения токена также подробно описан на этой странице).

ЕслиASK Python SDK не содержит встроенной поддержки API профиля клиента Alexa. Похоже, что вы можете просто создать запрос RESTful, как описано.

...