Alexa技能:自定义广告位未返回任何值

时间:2018-10-02 02:13:42

标签: alexa alexa-skills-kit alexa-slot

希望有人可以帮助我,因为我已经被困了一个星期。

我正在从其中一个示例中创建一个简单的Alexa技能。这是拾色器的技能-您告诉Alexa您喜欢的颜色,然后问她喜欢的颜色。我使用的是自定义广告位,技能服务中心不希望返回该颜色的值。它会成功启动,然后加载正确的意图,但是不会发送正确的值。相反,输出中甚至没有值参数,只有名称和确认状态。

这是我的技能的JSON,然后在我告诉技能后显示请求JSON输出:“我的颜色是红色”。我希望该技能将“红色”传递给value参数。

{
"interactionModel": {
    "languageModel": {
        "invocationName": "color picker",
        "intents": [
            {
                "name": "MyColorIsIntent",
                "slots": [
                    {
                        "name": "color",
                        "type": "LIST_OF_COLORS"
                    }
                ],
                "samples": [
                    "my color is {color}",
                    "{color} is my color"
                ]
            },
            {
                "name": "WhatsMyColorIntent",
                "slots": [],
                "samples": [
                    "what's my color",
                    "what's my favorite color"
                ]
            },
            {
                "name": "AMAZON.NavigateHomeIntent",
                "samples": []
            }
        ],
        "types": [
            {
                "name": "LIST_OF_COLORS",
                "values": [
                    {
                        "name": {
                            "value": "green"
                        }
                    },
                    {
                        "name": {
                            "value": "red"
                        }
                    },
                    {
                        "name": {
                            "value": "yellow"
                        }
                    },
                    {
                        "name": {
                            "value": "orange"
                        }
                    },
                    {
                        "name": {
                            "value": "black"
                        }
                    },
                    {
                        "name": {
                            "value": "blue"
                        }
                    }
                ]
            }
        ]
    }
}
}

下面是请求:

"request": {
"type": "IntentRequest",
"requestId": "amzn1.echo-api.request.918d6da6-cd7e-4bb8-a2a9-41fb1af8a354",
"timestamp": "2018-10-01T01:53:56Z",
"locale": "en-US",
"intent": {
    "name": "MyColorIsIntent",
    "confirmationStatus": "NONE",
    "slots": {
        "Color": {
            "name": "Color",
            "confirmationStatus": "NONE"
        }
    }
}
}

2 个答案:

答案 0 :(得分:0)

您的问题是,插槽“颜色”应命名为“颜色”,并且您的示例引用已更改为反映此颜色,因此“我的颜色为{颜色}”和“ {颜色}为我的颜色”,这没有发生插槽,因为名称相同。 确保还用所需的停止和帮助意图来完成这项技能,目前,这只会继续询问颜色选择,直到您杀死程序为止。

答案 1 :(得分:0)

这是发生的事情: 我正在使用相同技能的不同版本,每个版本具有相同的调用名称。当我键入调用名称时,它实际上打开了该技能的过时版本(我没有删除旧的技能-我喜欢3种不同的技能-我喜欢重新开始)。我没有意识到,当您单击“测试”时,您可以测试任何已保存的技能,而不仅仅是已打开的技能。