Alexa没有找到我的技能

Posted

技术标签:

【中文标题】Alexa没有找到我的技能【英文标题】:Alexa not finding my Skill 【发布时间】:2015-09-16 11:39:30 【问题描述】:

我根据 Alexa Skills Kit 中提供的示例之一将我的 Alexa Skill 创建为 AWS Lambda Node.js 应用程序。我按照所有说明进行操作:

    我的 Echo 与我在 AWS 上的开发者帐户使用相同的帐户注册 我在亚马逊开发者控制台上配置了我的技能 我将控制台中的应用程序 ID 放入我的应用程序代码中 我将代码上传到 AWS Lambda 服务(按照说明设置为弗吉尼亚北部) 我测试了我的服务,它返回了预期的 JSON 我在开发者控制台中输入了我的 ARN 作为端点 在控制台的下一步中,它告诉我通过说“Alexa,问 HelloWorld”来测试 Echo 的技能。

当我这样做时,她回答“与请求的应用程序通信时出现问题。”在 Echo 应用程序中它说:

意外的通信问题 HelloWorld 请求标识符: amzn1.echo-api.request.e2d17280-592a-474f-a6b1-d1a9d8ff816d 有 与请求的应用程序通信时出现问题

我可以从我的 AWS Lambda 函数列表中看到没有请求到达该服务。我重新启动了 Echo。我给了它一个小时,以防它只是需要时间传播到某个地方,但它仍然给出相同的响应。

所以这是一个相当模糊的死胡同。有没有人遇到过这个?有什么想法可以尝试吗?

【问题讨论】:

【参考方案1】:

我注意到您没有提到设置事件源。这是文档 here 中的 sn-p。

添加 Alexa Skills Kit 事件源

将 Alexa Skills Kit 事件源添加到您的函数会授予 Alexa 必要的函数调用权限。

Log in to the AWS Management Console and navigate to AWS Lambda.
Select your function in the list.
Click Actions and then select Add event source.
Select Alexa Skills Kit from the Event source type.
Click Submit.

此外,请随时查看 Alexa Skills Kit 知识库子论坛以获取常见问答列表here。

谢谢!

【讨论】:

这对我有用。我认为应该是正确的答案 是的,这正是我所需要的。谢谢,贾斯汀! 有什么方法可以在没有 lambda 的情况下将自定义技能托管为 Web 服务,请通过此链接:***.com/questions/39641640/…

以上是关于Alexa没有找到我的技能的主要内容,如果未能解决你的问题,请参考以下文章

Alexa 技能交互模型不确定自定义插槽

Alexa(智能家居技能)确定设备是否脱机。

是否可以在我的自定义技能中使用 Alexa Voice Profile

通过 API-KEY 使用来自外部 API 的数据的 Alexa 技能

Alexa 自定义技能示例话语

亚马逊 Alexa 技能