一段时间后,Alexa 家庭技能请求未达到 lambda 函数

Posted

技术标签:

【中文标题】一段时间后,Alexa 家庭技能请求未达到 lambda 函数【英文标题】:Alexa home skill request not reaching lambda function after a while 【发布时间】:2021-05-11 23:29:04 【问题描述】:

我们开发了一项 Alexa 家庭技能,并且正在测试中。对于家庭设备控制

环境详情:

Alexa Home 技能

用于执行的 Lambda 函数

帐户关联已启用

一旦我启用该技能,该技能就会成功启用。开始发现设备并查找设备。发布我也能够控制设备的帖子

但是一小时后再说。当我回到应用程序或回声设备时。如果我开始控制设备。它显示服务器无响应并说出现问题。尝试禁用和启用您的技能。如果我这样做,它可以正常工作一个小时。再次出现反应迟钝。

有没有人经历过这样的行为?

【问题讨论】:

【参考方案1】:

你的技能实现EnpointHealth了吗?

如果没有,可能会影响应用中的连接状态。

【讨论】:

我遇到了与这个问题描述的完全相同的问题,并尝试为我的 Alexa Smart Home 技能实施 EndpointHeath,但这对我的情况没有帮助。 确保在发现中包含 EndpointHealth,并在收到 ReportState 指令时将其包含在 StateReports 中。 是的,我们的发现和状态报告包括设备运行状况(连接和无线电诊断)。现在我们正在寻找 oauth 持有者令牌没有正确/成功刷新的可能性,因为这些令牌被设置为 1 小时有效 - 这与技能破坏的节奏相同。【参考方案2】:

我有完全相同的症状,根本原因是因为我们没有正确提供刷新令牌,而我们的访问令牌有 1 小时的 TTL。

来自Alexa Account Linking Debugging Tips 页面:

问题:帐号关联成功,但一段时间后客户必须再次关联帐号 解决方案:这通常表明 Alexa 无法使用提供的刷新令牌来获取新的访问/刷新令牌对。

    确保访问令牌的生存时间 (TTL) 超过 5 分钟。 确保您的授权服务器在收到刷新令牌时可以成功刷新访问/刷新令牌对 Alexa。 确保您不会过早地使刷新令牌失效 - 访问令牌过期后 Alexa 可能需要一段时间才能刷新 令牌,如果您的授权服务器已经失效 刷新令牌,Alexa 将无法刷新 访问/刷新令牌对,您的客户将拥有他们的帐户 链接已禁用。

【讨论】:

以上是关于一段时间后,Alexa 家庭技能请求未达到 lambda 函数的主要内容,如果未能解决你的问题,请参考以下文章

Alexa 技能未在 Amazon Alexa 应用程序中调用,但可在开发控制台中使用

从 Amazon Alexa 技能包发送 HTTP 发布请求

alexa 在技能调用时发送 SessionEndedRequest

取消意图未调用 Alexa

Amazon Alexa - 未定义的语音响应

开发阶段如何通过电脑测试amazon alexa自定义技能?