【问题标题】:Can I determine whether an Alexa Request was triggered by a routine or a user?我能否确定 Alexa 请求是由例程还是用户触发的?
【发布时间】:2020-01-16 13:49:09
【问题描述】:

我需要区分显式请求和例程请求。

这是一个例子。假设我正在控制智能灯。该灯能够检测占用情况。

如果用户进入房间并说打开灯,它会检查占用情况并关闭。 但是,如果用户创建了一个计划的例程来打开灯,我们应该禁用占用检查。

我在 TurnOn 指令的 documentation 中看不到任何表明请求来源的内容。

有没有我错过的指标?我可以添加一些指标吗?或者有没有人使用不同的方法来完成类似的功能?

【问题讨论】:

    标签: alexa alexa-skills-kit alexa-skill alexa-app


    【解决方案1】:

    亚马逊的官方回应是你无法区分。以下是亚马逊 Alexa 开发者论坛最近的回复:https://forums.developer.amazon.com/questions/218340/skills-invoking-routines.html

    也就是说,如果启动请求是从例程启动的,您通常会在启动请求中看到其他字段:

    "request": {
        "type": "LaunchRequest",
        "requestId": "amzn1.echo-api.request.abunchofnumbers",
        "timestamp": "2020-01-18T22:27:01Z",
        "locale": "en-US",
        "target": {
            "path": "AMAZON.Launch",
            "address": "amzn1.ask.skill.abunchofnumbers"
        },
        "metadata": {
            "referrer": "amzn1.alexa-speechlet-client.SequencedSimpleIntentHandler"
        },
        "body": {},
        "payload": {},
        "targetURI": "alexa://amzn1.ask.skill.abunchofnumbers/AMAZON.Launch",
        "launchRequestType": "FOLLOW_LINK_WITH_RESULT",
        "shouldLinkResultBeReturned": true
    }
    

    当用户通过语音启动技能时,通常找不到目标、元数据、正文、有效负载、targetURI 和 launchRequestType 字段。但是,我不相信这些字段的存在是由 Alexa 例程启动的。我怀疑,如果技能启动时,例如,当 Alexa 询问“嘿,既然你喜欢盲猴技能,你想试试盲猪吗?”时,你会找到它们。你说“是”。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-13
      相关资源
      最近更新 更多