Alexa Widget Lambda更新DataStore遇INVALID_DEVICE错误,能否免发布测试?
Alexa Widget DataStore 更新问题
我正在为视觉型Echo设备开发一款Alexa Widget,用于展示DataStore中的数据。目前已完成APL代码中DataStore数据与Widget的绑定,可在Echo Show上正常安装该Widget;通过Widget创作工具的「Update data store」按钮发送更新数据时,Echo Show上的Widget能正常显示更新后的内容。
但在Alexa.DataStore.PackageManager.UsagesInstalled的Lambda处理函数中,尝试调用https://api.amazonalexa.com/v1/datastore/commands接口更新DataStore时,收到如下错误:
{ "results": [ { "deviceId": "amzn1.ask.device.AMATJ3...", "type": "INVALID_DEVICE", "message": "The device does not have any package from this skill" } ] }
我已按照官方文档示例实现该处理函数,设备ID是从Widget创作工具安装Widget时的UsagesInstalled信封中获取的,理论上是正确的;同时我也尝试将更新目标设置为「user」以覆盖所有设备,但仍收到相同错误。
现咨询两个核心问题:
- 是否必须发布技能才能通过Lambda更新DataStore?
- 能否在不发布技能的情况下完成该功能的测试?
已执行的操作步骤:
- 启用APL和数据存储包
- 实现绑定DataStore的Widget
- 实现
Alexa.DataStore.PackageManager.UsagesInstalled的Lambda处理函数 - 在该函数中编写DataStore更新逻辑
- 部署并构建所有相关内容
- 通过Widget创作工具安装Widget→数据未显示
- 查看Lambda日志发现上述错误
- 通过Widget创作工具的「Update data store」按钮更新数据→数据成功显示
内容的提问来源于stack exchange,提问作者Brtlb
相关产品推荐
相关产品推荐

