You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Messenger聊天机器人发送文件请求失败问题求助

Troubleshooting Messenger Bot File Attachment Error (Code 1, Subcode 99)

Hey,我来帮你搞定这个Messenger机器人发文件的问题——你遇到的HTTP 500 + 错误子码99,其实大多和文件的隐性配置要求有关,虽然你已经做了基础排查,但还有几个容易漏掉的点:

1. 检查文件服务器的响应头

Messenger平台对文件请求的响应头有严格要求,你得确保你的服务器返回的头信息符合规范:

  • 必须返回正确的Content-Type:比如PDF要返回application/pdf,图片对应image/jpeg,别用application/octet-stream这种通用类型(除非真的没有对应类型的文件)
  • 关闭防盗链(hotlink protection):哪怕你加了域名白名单,有些服务器的防盗链规则还是会拦截Messenger的爬虫请求
  • 支持HEAD请求:Messenger会先发送HEAD请求验证文件,你的服务器得能正常响应这个请求

2. 确认文件大小在限制内

Messenger对不同类型的文件有明确的大小上限:

  • 普通文档(PDF、Word等):最大25MB
  • 图片:最大8MB
  • 视频:最大25MB
    如果你的文件超了对应限制,平台不会返回明确的“大小超限”提示,反而会抛出这个模糊的500错误

3. 正确使用is_reusable参数

虽然文档没标它是必填项,但实际测试里,加上布尔值is_reusable: true(注意是布尔值,不是字符串"true")经常能解决这类隐性问题。调整后的请求体应该是这样:

{
  "recipient": { "id": "157..." },
  "message": {
    "attachment": {
      "type": "file",
      "payload": {
        "url": "https://asd.com/s3/...",
        "is_reusable": true
      }
    }
  }
}

4. 验证文件对Messenger服务器的可访问性

有时候你浏览器能打开,但Messenger的服务器因为地区、网络策略访问不了。可以用curl命令模拟海外节点请求试试:

curl -I "https://asd.com/s3/..."

如果返回非200的状态码,说明Messenger服务器拿不到你的文件

5. 检查应用权限配置

确保你的Facebook应用已经启用了pages_messaging权限,而且如果是面向公众的机器人,已经完成了应用审核——未审核的应用在测试范围外会有功能限制

如果以上步骤都试过还是不行,建议去开发者后台的Messenger > 日志板块下载系统日志,里面会有更详细的错误细节,能帮你精准定位问题。

内容的提问来源于stack exchange,提问作者Bence Gedai

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 03:47:51