我试图实现一个Dialogflow应用程序(谷歌上的动作),到目前为止它运作良好 . 但是:有没有人知道是否可以通过node.js定义更多的动作参数/上下文,所以我可以用它们以某种方式在Dialogflow中创建动态的“链接输出建议”?
详细信息:我尝试从用户请求一些参数,将它们映射到一组URL(=实现为某种数据库),然后将结果URL写入json响应 . 目标:在Dialogflow的“响应> Google智能助理>输入网址”中将这些响应网址包含为$ url,#deeplink.url(或类似网址) .
这有可能吗?先感谢您 .
更新:我还测试了构建丰富响应的方法,但它似乎不起作用 . 例:
const richResponse = app
.buildRichResponse()
.addSimpleResponse('Flight from ' + origin + ' to' + destination)
.addSuggestions("Find your flight:")
.addSuggestions("Basic Card", "List", "Carousel")
.addSuggestionLink("Search now", url);
(app是require的实例('actions-on-google') . DialogflowApp)
但是,他似乎在“addSimpleResponse”之后停止了 .
1 回答
是 . 您可以在webhook中创建context,并在该上下文中包含包含所需值的参数 . 要使用您的示例,您可以创建一个上下文"deeplink"并在其中设置一个名为"url"的参数,其中包含您要链接到的URL . 您可能还应该有"title"参数,因为除了链接之外,链接输出建议和基本卡还需要 Headers 或网站名称 .
创建上下文非常简单,但具体取决于您如何生成JSON . 如果您正在使用针对node.js的actions-on-google库,则可以使用类似的命令创建它
如果您正在创建response JSON yourself,那么您将拥有一个包含要设置的上下文对象的
contextOut
数组 . 这部分JSON可能看起来像然后,在链接输出或基本卡的字段中,您将它们引用为
#deeplink.title
和#deeplink.url
. 对于Link Out,它可能看起来像这样:但是,一旦执行完成,有时在Webhook中生成VUI和GUI元素变得更容易,而不是将它们设置为Dialogflow构建器的一部分 . 如果您要生成不同数量的卡片或轮播项目,则尤其如此 .
The Actions on Google documentation提供了可以返回的各种UI元素以及样本JSON和node.js代码以生成每个元素 . 这些元素与Dialogflow通过Google响应标签上的操作提供的元素相同 - 只是您可以通过webhook生成它们 .