使用 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
但是,它没有提供有关如何在 Lambda 函数内访问该方法的信息。
我的主要功能运行于:
def lambda_handler(event, context):
事件只有来自自定义 Alexa 技能的用户输入的 JSON,其中不包含名称,所以我一直在研究如何访问任何具有 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 与我的“事件”有何不同
我认为只要取个名字就很简单,但这很复杂。以前有人这样做过吗?
最佳答案
请参阅the Alexa Customer Profile API documentation获取客户的姓名、电子邮件地址和电话号码。
本文档详细介绍了请求流程——以下是本文档中获取电话号码的示例:
主机:api.amazonalexa.com
接受:应用程序/json
授权:不记名 MQEWY...6fnLok
获取 https://api.amazonalexa.com/v2/accounts/~current/settings/Profile.name
请注意,您必须获取访问 token 才能用作请求的一部分(该页面上还详细介绍了如何获取 token )。
如果 ASK Python SDK 不包含对 Alexa Customer Profile API 的内置支持,您似乎可以按照详细说明创建 RESTful 请求。
关于python - Alexa Lambda 函数获取用户的全名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53274213/