问题描述
我正在创建一个基于 lambda 的 Alexa 技能,我需要为服务器输入一个 IP 地址,该地址会随着安装该技能的每个用户而变化。我知道有账号绑定选项,但是我需要在安装技能时输入服务器的IP。
我该怎么做?以及如何将这些参数传递给 lambda 函数? 先谢谢了。
解决方法
那么这个“服务器的 IP 地址”应该来自哪里?
- 您可以在第一次技能调用中向用户询问 ip
- 阅读有关意图和插槽的信息。该插槽的类型应为 (https://developer.amazon.com/en-US/docs/alexa/custom-skills/implement-the-built-in-intents.html)
- 如何知道这是第一个电话?保存用户 ID 和技能调用计数器
- 如何保存?我想您在 AWS lambda 上运行后端而不是使用 dynamoDB。有一个相当不错的功能。阅读有关 PersistanceAdapter 的信息。您可以为每个用户存储独特的特征 (https://developer.amazon.com/en-US/docs/alexa/alexa-skills-kit-sdk-for-nodejs/manage-attributes.html)。在您的情况下,您需要设置 (setPersistentAttributes) 并保存两个属性。计数器和 IP 地址。
- 还是需要书面形式?你可以为 alexa 技能 userId 生成一个 id,让 alexa 说出这个 id 并且用户使用这个 id:
- 使用此唯一 ID 登录您的网页
- 配置/添加IP地址
- 现在您的技能后端可以查找 userId 的 IP 地址
您能否改为从该外部服务器向技能发起链接请求?查看应用到应用链接功能。