如何在 DialogFlow Fulfillment for an Action 中退出对话
How to exit conversation in DialogFlow Fullfilment for an Action
我有一个简单的文字游戏,完成游戏后应该退出对话。我希望该操作支持 Google Assistant
和基于扬声器的设备(移动设备 phone 等),因此我以一般方式处理意图。
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);
}
}
...
}
请建议如何在游戏结束时关闭麦克风并仍然发送响应。
根据 https://github.com/dialogflow/dialogflow-fulfillment-nodejs/issues/149
记录的问题,dialogflow-fullfillment
软件包的版本 0.5.0
似乎存在问题
我尝试更新到 0.6.0
,其中有重大更改解决了我发布的当前问题,但产生了与上下文相关的问题。
你试过close
方法吗:
conv.close("Your score is 3/5. Cheers! GoodBye!");
请检查您的 Intent 的生命周期是否为 1。之后您可以使用以下命令:
agent.end("bye");
我有一个简单的文字游戏,完成游戏后应该退出对话。我希望该操作支持 Google Assistant
和基于扬声器的设备(移动设备 phone 等),因此我以一般方式处理意图。
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);
}
}
...
}
请建议如何在游戏结束时关闭麦克风并仍然发送响应。
根据 https://github.com/dialogflow/dialogflow-fulfillment-nodejs/issues/149
记录的问题,dialogflow-fullfillment
软件包的版本 0.5.0
似乎存在问题
我尝试更新到 0.6.0
,其中有重大更改解决了我发布的当前问题,但产生了与上下文相关的问题。
你试过close
方法吗:
conv.close("Your score is 3/5. Cheers! GoodBye!");
请检查您的 Intent 的生命周期是否为 1。之后您可以使用以下命令:
agent.end("bye");