对接Facebook页面的Lex聊天机器人无法回复其他用户该如何解决?
Facebook公共主页对接Lex机器人非管理员用户无响应排查方案
第一步:核查Facebook应用权限审核状态
- 确认
pages_messaging权限已通过Meta官方审核:应用切换为live状态仅代表应用基础状态开放,pages_messaging是向非应用角色用户提供消息服务的必需权限,未通过审核时,只有添加在应用「角色」列表内的管理员、开发人员、测试人员账号能触发机器人响应,普通用户的消息不会被转发到Lex回调地址。
第二步:校验Webhook配置
- 确认Facebook应用绑定的Webhook已勾选
messages、messaging_postbacks等必需的消息事件,且回调地址状态标记为已激活 - 验证Webhook签名校验逻辑无误,若普通用户消息的签名校验失败,Meta会直接丢弃请求,不会推送至Lex侧
第三步:检查Lex侧访问限制
- 排查Lex机器人关联的IAM资源策略,确认没有配置仅特定Facebook用户ID、特定主页ID可调用的限制规则,非白名单用户的请求会被Lex直接拦截,不会生成回复内容
- 若使用AWS Lex,检查关联的Lambda业务逻辑是否添加了用户ID过滤规则,误拦截普通用户请求
第四步:核查Facebook公共主页配置
- 确认公共主页未开启「仅关注者可发送私信」「私信审核模式」等限制,普通用户发送的消息若进入待审核队列,Meta不会将其推送至回调接口
第五步:日志定位根因
- 优先查看Facebook开发者后台的Messaging日志,筛选普通用户发信的对应记录:若显示
webhook not called,问题出在Facebook侧的权限/配置;若显示webhook返回错误,再查询Lex的运行日志(AWS Lex对应CloudWatch日志),根据报错信息调整对应配置即可
内容的提问来源于stack exchange,提问作者Rehan CH
相关产品推荐
相关产品推荐

