Alexa,从 LaunchRequest Intent 获取技能

Alexa, get skill from LaunchRequest Intent

我的帐户中有 3 个技能,例如 SkillASkillBSkillC

我正在使用端点 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。