Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dialogflow es 如何结束对助手的自定义操作?_Dialogflow Es_Actions On Google - Fatal编程技术网

Dialogflow es 如何结束对助手的自定义操作?

Dialogflow es 如何结束对助手的自定义操作?,dialogflow-es,actions-on-google,Dialogflow Es,Actions On Google,我有一个非常简单的动作,只是给我一些状态,然后我想结束它,没有对话,没有其他,只是得到状态并结束它。现在我正在这样做: agent.add(message1); agent.add(message2); agent.end('done'); 我也尝试过(正如您在下面的代码中看到的那样,只是执行agent.end(completeMessage);但是助手一直在等待我做更多的事情,我的操作并没有结束 我制作了一个非常简单的示例来演示,testintent是一个具有end()调用的示例: 代码:

我有一个非常简单的动作,只是给我一些状态,然后我想结束它,没有对话,没有其他,只是得到状态并结束它。现在我正在这样做:

agent.add(message1);
agent.add(message2);
agent.end('done');
我也尝试过(正如您在下面的代码中看到的那样,只是执行
agent.end(completeMessage);
但是助手一直在等待我做更多的事情,我的操作并没有结束

我制作了一个非常简单的示例来演示,
testintent
是一个具有
end()
调用的示例:

代码:


当我调用
test intent

时,有人知道我如何使我的操作完全结束吗?如果您在Google上使用带有操作的dialogflow实现库,您只能有两个简单的响应(文本或SSML字符串)。因为您的代码调用
agent.end()
设置两条消息后,可能会忽略该消息

相反,你可以称之为

agent.add(message1);
agent.end(message2);

agent
的文档是针对对象的。如果您想跳过库,还有JSON文档。

您能清楚地知道您正在使用哪个库吗?(显示require和package.JSON文件)我只是在使用他们的DialogFlow内联编辑器,不知道他们的package.json是什么样子的?但是我已经添加了require行。我应该提到,我几天前才开始这个操作,所以我假设它使用的是内联编辑器的最新默认值。你能更新这个问题来说明当end是c时到底发生了什么吗alled?有什么记录吗?你能告诉Intent处理程序的其他部分发生了什么吗?我想添加我的代码,希望这能解释一些事情。基本上,一旦我使用Google Home设备调用了
testIntent
,它就会坐在那里等待更多的消息,并且每隔一段时间它就会说抱歉我听不懂或类似的话在,它最终放弃了。我听说
done
虽然
end
方法起了作用。感谢您的链接,这确实很有帮助,但是在第二条消息上执行
end
没有帮助。这可能是因为我是从一个返回
承诺的函数执行此操作的。实际上,我执行了所有这些
异步
和ret当我的函数被意图调用时,将
promise
打开。它似乎可以工作,但它只是坐在那里等我说更多的话。将其更改为一行
agent.end(message1+”和“+message2”)
但这仍然不起作用。您的示例代码没有显示出承诺。这应该是有效的,所以我现在对正在发生的事情感到困惑,没有时间尝试和复制。我想我忘了提到,一旦我认为这是
承诺的问题,我刚刚制作了一个超级简单的示例,它所做的就是调用
agent.end(“完成”)
但即使这样也不会结束我的操作。
agent.add(message1);
agent.end(message2);