我一直想知道如何让Alexa内置插槽正常工作,我觉得我必须缺少一些超级基础的东西。为了为您做好准备,我将从Developer Portal的Testing页面开始。我使用node.js 6.10。
在文本话语服务模拟器下,如果我键入"我需要5个睡眠周期"它会生成一个请求:
"intent": {
"name": "SleepCyclesIntent",
"slots": {
"number": {
"name": "number"
}
}
}

结果是:"文字":"我现在知道你想要NaN睡眠周期。" 注意缺少"值"从话语中产生的字段。
然而,当我手动插入"值"在JSON请求中的字段,我得到了所需的输出!
"intent": {
"name": "SleepCyclesIntent",
"slots": {
"number": {
"name": "number",
"value": "5"
}
}
}

结果是:"文字":"我现在知道你想要5个睡眠周期。"
在我遇到这个问题之前,我已经设置了默认的意图编辑器,并且我已经切换到beta intents编辑器,希望它能解决我可能做错的事情。在那里,在" SleepCyclesIntent"发送到sleep_cycles,我有一个话语"我需要{number}个睡眠周期",[number}是AMAZON.NUMBER的插槽类型。
如需其他参考,如果它有用,请在Lambda中找到相关的代码块:
function sleep_cycles(intent, session, callback) {
const cardTitle = "Sleep Cycles";
let repromptText = '';
let sessionAttributes = {};
const shouldEndSession = true;
let speechOutput = '';
let targetCycles = intent.slots.number.value;
speechOutput = "I now know that you want " + targetCycles + " sleep cycles.";

如果这是一个非常愚蠢的问题我道歉,但过去一周我每天都在挖掘论坛和亚马逊的Alexa帮助和谷歌,我不知道还有什么地方可以转向。任何帮助都会非常感激!
答案 0 :(得分:3)