Dialogflow CX Webhook多文本响应仅显示首个内容的问题咨询
Dialogflow CX只返回Webhook文本数组首个元素的原因及解决办法
问题原因
Dialogflow CX中,res["fulfillment_response"]["messages"][0]["text"]["text"]字段的设计逻辑是存储单条文本消息的内容,虽然语法上允许传入字符串数组,但代理的渲染规则默认只会读取数组的第一个元素进行展示,不会遍历整个数组输出所有内容。
获取全部内容的方法
有两种可行的实现方式:
- 合并为单条文本消息:把所有内容合并成一个字符串,用换行符分隔,示例代码:
代理会将合并后的字符串完整输出,换行位置会保留格式。res["fulfillment_response"]["messages"][0]["text"]["text"] = ["a\n\nb\n\nc"] - 添加多条文本消息:在
messages数组中创建多个独立的文本消息对象,每个对象对应一条内容,示例代码:
这种方式下,Dialogflow CX会依次输出每条消息的内容。res["fulfillment_response"]["messages"] = [ {"text": {"text": ["a"]}}, {"text": {"text": ["b"]}}, {"text": {"text": ["c"]}} ]
内容的提问来源于stack exchange,提问作者Giacomo Brunetta
相关产品推荐
相关产品推荐

