我希望我的Google助手应用程序先与我的then服务器对话,然后再与我的对话框对话。记录DialogFlow的方式是,助手首先与它交谈,然后将它传递给我的web钩子。我想用另一种方式做。
发布于 2018-02-27 11:28:59
要让Google直接与您的服务器对话(其间没有对话框),您需要使用动作SDK。您将创建一个actions.json文件,该文件定义了触发信息和webhook的URL。(您无法摆脱web钩子--只需更改它的调用方式。)您的web钩子将使用与Dialogflow的JSON格式不同的JSON调用,或者您可以使用与Dialogflow版本具有类似接口的node.js库。
然后,您的webhook可以使用/query端点 (用于对话框流V1 API)或detectIntent消息 (用于对话框流V2 API)调用对话框流。您可以从用户或事件中发送文本,指示用户的操作(或者,实际上,任何您想要的)以及您希望的参数和上下文。对话框流将发送一个回复,要么从它的回复部分,要么通过发送到另一个实现网络钩子-无论你选择什么。
您的服务器将获得此答复,以及设置的任何上下文和参数。听起来你会把回复发送给用户,可能没有进一步的处理,尽管你可以做任何你想做的事情。您可能希望将上下文信息存储在会话令牌、用户存储对象或服务器希望使用的其他数据存储中。
有一些使用Actions的示例,尽管它们都没有说明如何从web钩子调用对话框。(这不是一种非常常见的模式-大多数用例以另一种方式工作得更好。)对话流样本主要用于webhooks,尽管“代理到人工切换”确实说明了从代码发送到对话框。
https://stackoverflow.com/questions/49001712
复制相似问题