Dialogflow CX如何通过webhook返回响应同时跳转至指定页面
Dialogflow CX Webhook 同时返回响应与跳转页面实现方案
失效原因
你之前的代码仅向会话写入了自定义参数,Dialogflow CX没有自动读取自定义参数执行页面跳转的默认逻辑,必须按照指定的响应结构配置跳转目标才能生效。
可直接复用的代码示例(Python Flask 环境)
from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/dialogflow-cx-webhook', methods=['POST']) def cx_webhook_handler(): # 解析Dialogflow CX传入的请求 request_data = request.get_json() tag = request_data.get('fulfillmentInfo', {}).get('tag', '') if tag == 'welcome': response = { # 给Agent返回的回复内容 "fulfillmentResponse": { "messages": [ { "text": { "text": ["这是返回给用户的回复内容,可以自定义修改"] } } ] }, # 页面跳转配置 "transitionTarget": { # 目标页面为当前流内显示名为test的页面 "page": "test" # 若同流内存在重名页面,需填写完整资源路径,示例如下: # "page": "projects/你的项目ID/locations/global/agents/你的Agent ID/flows/对应流ID/pages/test页面的ID" }, # 如需保留会话参数配置可以保留该部分 "sessionInfo": { "parameters": { "你需要自定义的参数名": "参数值" } } } return jsonify(response), 200
补充注意事项
- Webhook返回的HTTP状态码必须为200,否则Dialogflow CX会判定调用失败,不会执行响应回复与跳转逻辑
- 若需要跳转至其他流,将
transitionTarget中的page字段替换为flow,填写对应流的显示名或完整资源ID即可 - 若需要跳转至当前流的起始页,直接将
page字段值设置为START_PAGE即可
内容的提问来源于stack exchange,提问作者Manasa Krishna
相关产品推荐
相关产品推荐

