【问题标题】:Alexa, get skill from LaunchRequest IntentAlexa,从 LaunchRequest Intent 获得技能
【发布时间】:2018-10-04 07:30:12
【问题描述】:
我的帐户中有 3 个技能,例如 SkillA、SkillB 和 SkillC。
我正在使用端点 url 来收听这些技能,并且我的服务器对于所有 3 种技能都是通用的。因此,如果我尝试通过说open SkillA 来调用一项技能,它会调用LaunchRequest。其他2个技能也是如此。
那么我怎么知道调用了哪个技能的LaunchRequest。
我的服务器是带有 Ralyxa Gem 的 ruby。
【问题讨论】:
标签:
alexa
alexa-skills-kit
alexa-skill
【解决方案1】:
每个技能都有一个唯一的技能 ID,称为 applicationId。利用请求 JSON 中的 applicationId,您可以轻松确定请求来自哪个技能。
您可以在 Alexa 向您的后端发出的每个请求中的 application 对象下找到此 applicationId。
{
"version": "1.0",
"session": {
"new": true,
"sessionId": "amzn1.echo-api.session.xxxx-xxxx-xxxx-xxxx-xxxxxxx",
"application": {
"applicationId": "amzn1.ask.skill.xxxx-xxxx-xxxx-xxxx-xxxx"
},
"user": {
"userId": "amzn1.ask.account.xxxxxxxxxxxxxx"
}
},
...
您还可以从列出您的 Alexa 技能的 Alexa 开发人员控制台查看技能 ID。