Dialogflow CX如何为DF Messenger与FB Messenger配置不同Custom payload
问题解答
1. 双渠道Custom payload同时生效的实现方式
Dialogflow CX支持在同一份自定义响应中同时承载多渠道的配置规则,你只需要将不同渠道的payload放在对应约定的顶级字段下即可,系统会自动识别渠道并返回对应格式的内容,不需要做额外拆分。
正确的合并配置格式如下:
{ "richContent": [ [ { "icon": { "color": "#F78A2D", "type": "network_check" }, "text": "Text on the button", "type": "button", "link": "https://www.example.com" } ] ], "facebook": { "text": "Pick a color:", "quick_replies":[ { "content_type":"text", "title":"Red", "payload":"rdeč" },{ "content_type":"text", "title":"Green", "payload":"zelen" } ] } }
2. 是否存在FB messenger独立响应配置入口
Dialogflow CX没有提供类似Dialogflow ES的分渠道独立响应标签页,不存在你遗漏的配置入口,所有渠道的自定义响应都统一在同一个配置项中填写。
3. 合并代码的问题
你之前合并的代码存在格式错误:FB messenger的所有配置内容必须放在顶级字段facebook下,Dialogflow CX的FB集成只会读取该字段下的内容,你直接将text、quick_replies放在JSON根节点会被FB渠道忽略,因此无法展示快速回复。
4. 条件响应的使用场景和渠道判断方式
常规场景下不需要使用条件响应,按上述方法将不同渠道payload放在对应顶级字段即可自动适配。如果有更复杂的渠道差异化逻辑需要实现,可以通过系统参数$request.platform判断用户的接入渠道:
- FB messenger对应的参数值为
FACEBOOK - DF messenger对应的参数值为
DF_MESSENGER
你可以在条件响应规则中匹配该参数的值,返回对应渠道的响应内容即可。
调试说明
在GCP Logs Explorer中,筛选资源类型为dialogflow.googleapis.com/Conversation,新增过滤器labels.platform = "FACEBOOK",即可查看所有FB messenger渠道的交互日志,包含请求 payload、返回内容和接口报错信息。
内容的提问来源于stack exchange,提问作者Boštjan
相关产品推荐
相关产品推荐

