如何处理自定义技能中用户的 'Yes'/'No' 响应?

How do I handle 'Yes'/'No' responses from the user in Custom Skill?

我正在尝试构建 alexa 自定义技能。我正面临一个问题,我试图从用户那里获得 Yes/No 对技能向用户提出的问题的答复。

Alexa: Would you like to know the rules of the game?
User: <Can respond either Yes or No>

根据用户的反应,我想执行一个特定的操作。

这是我的意图架构:

{
    "intents": [
    {
        "intent": "AMAZON.StopIntent"
    },
    {
        "intent": "AMAZON.CancelIntent"
    },
    {
        "intent": "AMAZON.HelpIntent"
    },
    {
        "intent": "StartGame"
    },
    {
        "intent": "GetRules"
    }
  ]
}

这是我的示例话语:

StartGame Begin the game
StartGame Start the game

GetRules What are the rules
GetRules Get the rules
GetRules Tell me the rules
GetRules Tell me the rules again

技能向用户提出的问题如下:

Welcome to the game. Would you like me to tell you the rules?

每当我说 "Yes" 时,StartGame 意图就是被触发的。 ("No" 也是如此)。 Alexa 总是选择作为 StartGame 的意图。调用 "GetRules" 意图的最佳方式是什么。我希望用户只说 Yes/No 而不是说 "Get the rules".

如果这已经存在,请告诉我 answered/more 需要信息。

您需要使用 AMAZON.YesIntent 和 AMAZON.NoIntent。

您可以在这里阅读它们:。

标准Built-in 意图。 https://developer.amazon.com/public/solutions/alexa/alexa-skills-kit/docs/built-in-intent-ref/standard-intents

请在交互模型中添加以下代码。

{
    "name": "AMAZON.NoIntent",
    "samples": []
},
{
    "name": "AMAZON.YesIntent",
    "samples": []
}

并在您的 lambda 中为 yes/no 提供您的业务逻辑。

'AMAZON.YesIntent': function () {
    //business code
},
'AMAZON.NoIntent': function () {
    //business code
}