希望有人可以帮助我,因为我已经被困了一个星期。
我正在从其中一个示例中创建一个简单的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"
}
}
}
}
答案 0 :(得分:0)
您的问题是,插槽“颜色”应命名为“颜色”,并且您的示例引用已更改为反映此颜色,因此“我的颜色为{颜色}”和“ {颜色}为我的颜色”,这没有发生插槽,因为名称相同。 确保还用所需的停止和帮助意图来完成这项技能,目前,这只会继续询问颜色选择,直到您杀死程序为止。
答案 1 :(得分:0)
这是发生的事情: 我正在使用相同技能的不同版本,每个版本具有相同的调用名称。当我键入调用名称时,它实际上打开了该技能的过时版本(我没有删除旧的技能-我喜欢3种不同的技能-我喜欢重新开始)。我没有意识到,当您单击“测试”时,您可以测试任何已保存的技能,而不仅仅是已打开的技能。