我有一个意图,其中列出了太阳系中的行星列表。
{
"intent": "PlanetIntent",
"slots": [
{
"name": "Planet",
"type": "LIST_OF_PLANETS"
}
]
},
我正在尝试对其进行设置,以便当用户命名行星时,我的代码只需将该行星的名称返回给他们。如果他们说一个不在列表中的行星,那么它将返回一个错误(或者进入未处理状态,这是我最初假设会发生的)。
但无论我尝试什么,从最基本的代码到最复杂的代码,我的代码总是会返回所说的任何单词,而不仅仅是相关的槽值。
所以也没有
'PlanetIntent': function () {
var selection = this.event.request.intent.slots.Planet.value;
this.response.speak(selection);
this.emit(':responseReady');
}
也不是这个
'PlanetIntent': function () {
var selection = '';
if ( !this.event.request.intent.slots.Planet ||
this.event.request.intent.slots.Planet.value == '') {
this.emitWithState('AMAZON.HelpIntent');
} else {
selection = this.event.request.intent.slots.Planet.value;
this.response.speak(selection);
this.emit(':responseReady');
}
},
似乎阻止随机值通过。如果你说火星,它会返回火星,如果你说萝卜,它会返回萝卜。有任何想法吗。我只是想限制它只返回我的行星列表中的响应!