使用Instagram Graph API上传Reels时遭遇“Unsupported post request”错误求助
兄弟,我之前也碰到过一模一样的报错,折腾了快三天才搞定,给你分享几个我亲测有效的排查点和解决办法:
先把
media_type参数拉满检查:上传Reels和普通图片/视频的核心区别就是必须明确指定media_type=REELS!我当时就是顺手用了上传普通视频的参数,没加这个,直接就报了和你一样的100错误。调用/{ig-business-account-id}/media接口的时候,这个参数是硬性要求,不能少。核对API请求的参数完整性:除了
media_type,还要确认video_url是公开可访问的(不能是本地文件路径或者需要权限的链接),另外可以加上share_to_feed参数(设为true或false),有些时候缺这个也会触发奇怪的权限类错误。再扒一遍token的权限和有效性:你说权限都有,但还是建议用Graph API的token调试工具查一下,确保
instagram_content_publish、pages_show_list这些权限真的在token里,而且token没有过期。另外要注意,这个token必须是通过关联的Facebook Page授权生成的,不能是单独的Instagram token。视频文件的细节别漏了:除了大小和时长,还要确认视频是H.264编码、音频是AAC格式,分辨率最好是1080x1920的竖屏,帧速率不超过30fps,这些编码格式不对也会触发看似权限问题的错误。
给你贴个我当时成功的请求示例(伪代码),你可以对照着改:
POST /{你的IG企业账号ID}/media 表单参数: - access_token: 你的有效token - media_type: REELS - video_url: 公开可访问的视频URL - caption: 你的Reels文案(可以空但建议带上) - share_to_feed: false
拿到返回的media_id之后,别着急马上调用/media_publish,可以先GET一下这个media_id,等状态变成FINISHED再去发布,不然也可能出问题。
我就是靠调整这些点解决的,你先试试加media_type=REELS这个最关键的点,应该能搞定!
内容来源于stack exchange




