如何在Instagram Graph API中获取图片容器ID及解决请求错误
解决Facebook Graph API media_publish 错误(Code 100, Subcode 33)
首先咱们拆解下这个错误的核心问题:Object with ID 'me' does not exist... 说明你的请求路径里的{ig-user-id}大概率没替换成真实的Instagram业务账户ID,或者访问令牌没正确关联目标IG账户;另外你直接给media_publish传image_url也是错误的——这个端点需要的是媒体容器ID,不是直接的图片链接。
下面是一步步的修复流程:
1. 替换为真实的Instagram用户ID
别在请求URL里用me占位,你得先拿到自己的Instagram业务账户ID:
- 确认你的Facebook页面已经关联了Instagram业务账户
- 调用
GET /{page-id}/accounts(把{page-id}换成你的Facebook页面ID),返回结果里的instagram_business_account字段对应的ID,就是你要用到的{ig-user-id}
2. 先创建图片媒体容器(获取container ID)
media_publish是用来发布已生成的媒体容器的,所以第一步得先上传图片生成容器ID:
发送POST请求到 https://graph.facebook.com/{api-version}/{ig-user-id}/media,请求体如下:
{ "image_url": "https://cdn.pixabay.com/photo/2017/05/21/14/19/landscape-2331416_960_720.jpg", "caption": "可选的图片描述内容" }
成功响应后,你会拿到一个类似这样的结果,里面的id就是需要的容器ID:
{ "id": "17895695668004550" }
3. 调用media_publish发布图片
现在用刚才拿到的容器ID,发送POST请求到 https://graph.facebook.com/{api-version}/{ig-user-id}/media_publish,请求体修改为:
{ "creation_id": "这里填刚才拿到的容器ID" }
4. 检查权限与令牌有效性
确保你的访问令牌具备以下必要权限:
pages_show_listpages_manage_postsinstagram_basicinstagram_manage_posts
同时要保证令牌是长期有效的,且正确关联了对应的Facebook页面和Instagram业务账户。
如果还是有问题,可以额外排查:
- 确认你的Instagram账户是业务账户,个人账户无法通过Graph API发布内容
- 检查使用的API版本是否为当前支持的稳定版本(比如v18.0)
内容的提问来源于stack exchange,提问作者DOUGLAS FERNANDES
相关产品推荐
相关产品推荐

