Alexa,从 LaunchRequest Intent 获取技能
Alexa, get skill from LaunchRequest Intent
我的帐户中有 3 个技能,例如 SkillA
、SkillB
和 SkillC
。
我正在使用端点 url 来收听这些技能,我的服务器对所有 3 种技能都是通用的。因此,如果我尝试通过说 open SkillA
来调用技能,它会调用 LaunchRequest
。其他2个技能也是如此。
那么我怎么才能知道哪个技能的 LaunchRequest
被调用了。
我的服务器是 ruby 和 Ralyxa Gem。
每个技能都有一个唯一的技能 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。
我的帐户中有 3 个技能,例如 SkillA
、SkillB
和 SkillC
。
我正在使用端点 url 来收听这些技能,我的服务器对所有 3 种技能都是通用的。因此,如果我尝试通过说 open SkillA
来调用技能,它会调用 LaunchRequest
。其他2个技能也是如此。
那么我怎么才能知道哪个技能的 LaunchRequest
被调用了。
我的服务器是 ruby 和 Ralyxa Gem。
每个技能都有一个唯一的技能 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。