Dialogflow中Carousel Selector回复去向及webhook嵌入Google Actions轮播问题
关于Dialogflow Carousel Selector的问题解答
嘿,我来帮你理清这两个问题哈!
1. Carousel Selector的回复会发送至何处?
当用户点击Carousel里的某个选项时,这个选择结果会以意图参数的形式发送回你的Dialogflow Fulfillment服务器。具体来说,你在配置Carousel选项时设置的optionInfo.key值,会被Dialogflow捕获并作为请求参数,传递到你之前部署的Fulfillment后端端点——也就是处理webhook请求的服务器地址。
2. 在Dialogflow webhook响应中嵌入Google Actions轮播组件的方法
要在Dialogflow的webhook响应里加入Carousel这类Google Actions组件,同时处理用户点击后的反馈,你可以按以下步骤操作:
- 首先,你的webhook响应需要适配Google Actions的格式,在Dialogflow的
fulfillmentMessages字段里指定platform: "ACTIONS_ON_GOOGLE",确保消息仅发送给Google Assistant平台。 - 构建Carousel结构:每个选项需包含
title、可选的description和image,核心是optionInfo部分,这里的key是用户点击后会返回给你的唯一标识,比如可以设置option_1、option_2这类清晰的标识值。 - 用户点击选项后,Dialogflow会把这个
key值作为参数传入对应的意图(你可以提前配置意图接收该参数,或在默认fallback意图里处理),随后触发Fulfillment请求,将参数发送到你的后端服务器,你就能根据这个key值返回对应的后续回复了。
给你举个Node.js环境下的webhook响应示例:
function sendCarousel(agent) { const carouselMsg = { platform: "ACTIONS_ON_GOOGLE", carouselSelect: { items: [ { title: "产品A", description: "热销款智能设备", image: { url: "https://example.com/productA.jpg", accessibilityText: "产品A展示图" }, optionInfo: { key: "product_A" } }, { title: "产品B", description: "性价比之选", image: { url: "https://example.com/productB.jpg", accessibilityText: "产品B展示图" }, optionInfo: { key: "product_B" } } ] } }; agent.add(carouselMsg); }
当用户点击“产品A”时,你的Fulfillment服务器会收到携带product_A参数的请求,你就可以针对这个参数做后续的业务处理啦。
内容的提问来源于stack exchange,提问作者Andrew Eers
相关产品推荐
相关产品推荐

