如何在Dialogflow CX灵活Webhook中获取标签并传递数据至后端
解决Dialogflow CX灵活Webhook获取数据失效的问题
核心问题定位
你当前使用的$request.session-id、$request.fulfillment.tag属于错误的变量引用语法,Dialogflow CX灵活Webhook的请求体模板不支持这种格式,导致变量无法被正确解析替换。
修正步骤
使用正确的变量引用语法
Dialogflow CX的模板变量需要用双花括号{{}}包裹,且变量路径要对应WebhookRequest的结构:- Session ID对应的变量路径是
session - Fulfillment标签对应的变量路径是
fulfillmentInfo.tag
修正后的请求体代码如下:
{ "session_id": "{{session}}", "intent_id": "{{fulfillmentInfo.tag}}" }- Session ID对应的变量路径是
确认Webhook触发配置
- 确保在目标Intent的Fulfillment设置中,已启用Webhook调用,并正确填写了Fulfillment Tag
- 检查Webhook的触发时机,确保在对话流程中该Intent确实被触发,Webhook请求正常发起
验证请求内容
使用Dialogflow CX控制台的测试工具,触发对应的对话流程后,查看Webhook的请求日志(在测试工具的"Webhook"标签页),确认请求体中的session_id和intent_id是否已被正确替换为实际值:- 如果变量未被替换:说明模板语法仍有错误,检查括号是否成对、变量路径是否拼写正确
- 如果值为空:确认触发Webhook时,对应字段是否存在(比如Fulfillment Tag是否在Intent中设置)
后端接收适配
确保后端服务能正确解析JSON格式的请求体,且接收字段名与Webhook发送的session_id、intent_id完全一致,避免因字段名不匹配导致数据获取失败
内容的提问来源于stack exchange,提问作者Dilip Badal
相关产品推荐
相关产品推荐

