尽管使用了conv.close标记,仍然显示错误“ Malformed_Response”。 这是代码:
app.intent('Selected subjects', (conv, {Subject}) => {
var subject = conv.arguments.get('OPTION') || Subject;
if (!conv.screen) {
conv.ask(subjectCard[subject].text);
} else {
conv.ask(new BasicCard(subjectCard[subject]));
}
conv.ask(' Do you want to hear about a new subject?');
conv.ask(new Suggestions('Yes', 'No'));
});
app.intent(['Selected subjects - yes'], (conv) => {
var 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]));
}
});
随附Firebase错误图片。
这是请求:
{
"response": "Team Edzuki isn't responding right now. Try again soon.",
"expectUserResponse": false,
"conversationToken": "GidzaW11bG...",
"audioResponse": "//NExAASWK...",
"sharedDebugInfoList": [
{
"name": "ResponseValidation",
"debugInfo": "",
"subDebugEntryList": [
{
"name": "MalformedResponse",
"debugInfo": "'final_response' must be set.",
"subDebugEntryList": []
}
]
}
]
},
"visualResponse": {
"visualElementsList": [
{
"displayText": {
"content": "Team Edzuki isn't responding right now. Try again
soon."
}
}
],
"suggestionsList": [],
"agentLogoUrl": ""
},
"clientError": 0,
"is3pResponse": 1
}
这是在Google行动页面上看到的debug标记的一部分,上面提到的错误(带有firebase选项卡运行状况的图片)是重复出现的错误。没有显示其他错误。如果有人有其他使用后续提示的方式,请务必告知。
答案 0 :(得分:0)
您在响应中发布的错误消息中的“ Webhook调用失败。错误:500 Internal Server Error”部分表明您的代码存在问题,导致代码崩溃。
检查您的Firebase日志中错误的位置和原因。但是一些可能性包括:
首先,在“选定主题”意图处理程序中,您同时调用conv.close()
和conv.ask()
。鉴于您要结束对话,目前尚不清楚为什么要这样做。
从日志中看到的有关“未定义主题”的错误消息似乎是因为,尽管您在函数中使用了Subject
,但第二个意图(当它崩溃时似乎被调用)您可以将其分配给subject
),它不在可用参数列表中。 (您之前在Subject
和subject
上遇到过问题,但这不是完全相同的问题。)
更清楚的是,代码应类似于
app.intent('Selected subjects - yes', (conv, {Subject}) => {
var 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]));
}
});
最后,尚不清楚在什么情况下会产生“需要简单响应”的错误,但是您似乎试图发送不带任何简单文本的基本卡,或者在“选定主题”意向处理程序中的“基本卡”之前,是“ 之前”。
答案 1 :(得分:0)
答案非常简单:意图是建立的,因此每次您说正确的单词时,动作/意图都会起作用。因此,至少在这种情况下,最简单的方法是将“选定的主题”设置为“是”,将其设置为文本响应,以使其按您希望的方式作为日志工作。