Azure机器人集成Facebook Messenger多轮提示文本显示不全解决方法
Azure QnA机器人Facebook Messenger渠道多轮提示文本显示不全解决方法
问题现象
- 基于Azure门户搭建的FAQ答疑机器人,已完成Facebook Messenger聊天渠道集成,自有网站已部署对应Messenger聊天入口按钮
- 知识库中配置的多轮提示(multiturn prompts)无法完整展示预设的候选问题文本,点击任意选项后,机器人均可正常识别对应问题并返回匹配响应
- 实际显示效果如下:

问题原因
Facebook Messenger渠道对结构化卡片的按钮文本有默认长度限制:原生按钮文本最多支持20个英文字符(约10个汉字),超出部分会自动截断。Azure机器人服务对接Messenger渠道时,默认将多轮提示的完整候选文本放在按钮字段中渲染,因此触发截断规则。由于按钮绑定的问题跳转标识未受影响,所以点击功能可以正常运行。
配置解决步骤
- 方案1(零代码适配,成本最低):调整知识库多轮提示的展示文本
进入Azure QnA Maker知识库编辑页,把单条多轮提示的外显文本控制在20个英文字符/10个汉字以内,核心语义前置,完整的问题说明放在用户点击选项后的响应内容中即可,无需修改代码即可适配Messenger原生规则。 - 方案2(保留完整提示文本,需少量代码调整):修改渠道渲染逻辑
打开Azure机器人项目的消息处理中间件,拦截QnA Maker返回的多轮提示响应,替换默认的按钮渲染逻辑,改用Messenger平台支持的通用模板(Generic Template)承载多轮选项:将多轮提示的完整候选文本放在通用模板的副标题字段(该字段支持最长80个英文字符/40个汉字,足够承载完整提示内容),模板内嵌按钮仅保留「查看解答」这类短文本,点击时绑定对应多轮提示的问题ID即可,原有问答匹配逻辑无需修改。
- 方案3(修复嵌入端截断问题):升级网站Messenger插件版本
检查自有网站部署的Messenger聊天插件代码,将插件版本参数升级到v18.0及以上,旧版本插件存在额外的文本截断bug,升级后清空网站缓存即可生效。 - 配置完成后重新触发多轮对话场景,确认所有候选提示文本完整展示、点击响应正常即可。
内容的提问来源于stack exchange,提问作者Michiel
相关产品推荐
相关产品推荐

