使用Instagram Graph API发布视频时遇500未知错误求助
解决Instagram Graph API发布Reels视频500错误的排查方案
以下是针对你遇到的发布Reels视频返回500(OAuthException code 1)错误的具体排查步骤:
1. 修正发布请求的API端点
你第二步的发布请求用错了端点:创建媒体容器是POST /<user-id>/media,但发布已创建的媒体容器必须使用POST /<user-id>/media_publish,这是最常见的错误点。正确的发布请求格式应为:
POST https://graph.facebook.com/v21.0/<user-id>/media_publish { "creation_id": "<id-container>", "access_token": "..." }
2. 确认媒体容器的处理状态
创建视频容器后,Instagram需要时间处理视频(转码、审核等),不能立即发布。你需要通过GET /<container-id>?fields=status,status_code轮询容器状态,直到status变为FINISHED且status_code为SUCCESS后,再执行发布操作。
3. 验证视频文件的合规性
Reels对视频格式有严格要求,即使你标注了H264/AAC,也需确认以下参数:
- 分辨率:必须为9:16竖屏,最低720p(720x1280),推荐1080p(1080x1920)
- 帧率:24-60fps
- 码率:至少2Mbps(你的744k文件可能码率过低,建议调整)
- 文件大小:最大10GB,但短Reels建议不低于1MB(过小的文件可能被系统判定为无效)
- 编码细节:H.264 Profile需为Main或Baseline,AAC音频编码需为LC格式
4. 检查Access Token的权限与有效性
确保你的access_token具备以下权限:
instagram_basicinstagram_content_publish- 若账号关联Facebook Page,需额外
pages_show_list权限
同时确认token未过期,且是通过用户授权流程获取的(而非应用级token)。
5. 规范请求的JSON格式
你的请求示例中存在JSON格式错误(比如video_url未加双引号),实际请求必须严格符合JSON规范:
- 所有键名和字符串值必须用双引号包裹
- 请求头需设置
Content-Type: application/json
6. 排查其他潜在问题
- 确认
video_url是公开可访问的HTTPS链接,且服务器允许Facebook的爬虫抓取(无IP封禁或防盗链) - 尝试移除
share_to_feed参数,单独测试发布Reels,再逐步添加参数排查冲突
错误信息参考:
{ "error": { "message": "An unknown error has occurred.", "type": "OAuthException", "code": 1, "fbtrace_id": "<trace-id>" } }
内容的提问来源于stack exchange,提问作者Luboš Hájek
相关产品推荐
相关产品推荐

