使用Django Allauth对接Facebook令牌发布Instagram内容报错求助
解决Instagram内容发布报错(Code 100, Subcode 33)
核心问题排查与修复步骤
1. 修正ID使用错误
你步骤2的请求路径存在错误:获取Instagram企业账号ID时,应该传入Facebook页面ID,而非<IG_USER_ID>。正确请求示例:
curl -i -X GET "https://graph.facebook.com/v17.0/<FACEBOOK_PAGE_ID>?fields=instagram_business_account&access_token=USER_ACCESS_TOKEN"
返回结果中instagram_business_account.id字段的值,才是后续创建媒体容器需要的Instagram企业账号ID,切勿混淆页面ID与IG账号ID。
2. 替换为页面访问令牌
当前你使用的是用户访问令牌,但操作Instagram企业账号必须使用页面访问令牌:
- 从步骤1
/me/accounts的返回结果里,每个页面条目都附带access_token字段,这就是对应页面的访问令牌。 - 后续调用IG账号接口、媒体创建接口时,都要使用这个页面令牌,而非用户令牌。
3. 确认开发模式测试资源配置
开发模式下,仅应用的测试用户/测试页面关联的账号可被操作:
- 登录Facebook开发者后台,将目标Facebook页面添加为应用的「测试资源」。
- 确保该页面关联的Instagram企业账号属于测试用户(应用开发者账号默认拥有测试权限)。
4. 校验API端点正确性
创建媒体容器的端点必须使用Instagram企业账号ID,正确请求示例:
curl -i -X POST "https://graph.facebook.com/v17.0/<INSTAGRAM_BUSINESS_ACCOUNT_ID>/media?image_url=https://images.pexels.com/photos/15925339/pexels-photo-15925339/free-photo-of-lonely-swan.jpeg&caption=#BronzFonz&access_token=PAGE_ACCESS_TOKEN"
额外验证步骤
- 用页面访问令牌在Access Token Debugger中重新校验权限,确认
instagram_basic、instagram_content_publish权限存在且粒度覆盖目标IG账号。 - 先调用
GET /<INSTAGRAM_BUSINESS_ACCOUNT_ID>?fields=username验证能正常获取IG账号信息,再尝试创建媒体容器。
内容的提问来源于stack exchange,提问作者Shahrukh Mohammad
相关产品推荐
相关产品推荐

