为什么app.intent在Google行动中会引发错误(错误的响应)

时间:2018-10-13 14:51:53

标签: node.js actions-on-google

我要在操作中添加基本卡,并且在模拟器中进行测试时,错误Malformed response, final_response must be set

这是网络挂钩:

app.intent('Selected subjects', (conv, {Subject}) => {
subject = conv.arguments.get('OPTION') || Subject;
if (!conv.screen) {
conv.close(subjectCard[Subject].text);
} else {
conv.close(`Maybe this would help`, new BasicCard(subjectCard[Subject]));
}
});

2 个答案:

答案 0 :(得分:2)

对于使用Firebase遇到此问题的任何人,请转到“功能”,然后选择“运行状况”。这将描述确切的行和代码,这是一个错误。例如,在此示例中,单词“ subject”未标记为var,从而导致错误。我建议您使用firebase,因为Firebase控制台会描述在终端/ cmd /命令行等上未显示的错误。

答案 1 :(得分:1)

有两个问题。首先,您必须在意图处理程序中执行conv.closeconv.ask。在代码中,当conv.screen为true时,函数似乎都不起作用。要解决此问题,请将else子句更改为:

else {
  conv.close(new BasicCard(...));
}

第二个问题是您没有实例化BasicCard,该问题已在上面的代码段中修复。

这是一个非常常见的错误,建议您阅读Debugging Common Actions on Google Errors以获得有关调试方法的提示和技巧。