我有一个简单的文字游戏动作,完成游戏后应退出对话。我希望该操作支持Google Assistant
和基于扬声器的设备(移动电话等),所以我以一般方式处理此意图。
const {WebhookClient} = require('dialogflow-fulfillment');
...
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
...
function answerIntent(agent) {
if (gameShouldEnd) {
agent.end("Your score is 3/5. Cheers! GoodBye!");
}
}
...
}
这将导致日志错误MalformedResponse: 'final_response' must be set
我也尝试过conv api,这会导致相同的错误。
const {WebhookClient} = require('dialogflow-fulfillment');
...
exports.dialogflowFirebaseFulfillment = functions.https.onRequest((request, response) => {
...
function answerIntent(agent) {
if (gameShouldEnd) {
let conv = agent.conv();
conv.tell("Your score is 3/5. Cheers! GoodBye!");
agent.add(conv);
}
}
...
}
请建议当游戏结束并仍然发送响应时如何关闭麦克风。
答案 0 :(得分:0)
根据记录的https://github.com/dialogflow/dialogflow-fulfillment-nodejs/issues/149,看来0.5.0
软件包的dialogflow-fullfillment
版本存在问题
我尝试更新为0.6.0
,该版本具有重大更改,可以解决我发布的当前问题,但创建了与上下文相关的问题。
答案 1 :(得分:0)
您是否尝试过close
方法:
conv.close("Your score is 3/5. Cheers! GoodBye!");
答案 2 :(得分:0)
请检查您意图的垃圾邮件是否为1。之后,您可以使用以下命令:
agent.end(“ bye”);