使用Python脚本调用Instagram Graph API上传图片报错求助
解决Instagram Graph API上传图片时"不支持的格式"错误
问题核心
你代码里的image_url使用的是图片托管平台的分享页面链接(https://ibb.co/WzfJmWW),而非直接指向图片文件的URL。Instagram Graph API需要读取原始图片文件才能识别格式,访问网页链接无法获取图片内容,因此返回"未知格式不支持"的错误。
修复方案
1. 获取图片的直接访问URL
打开ibb.co的图片分享页面,右键点击图片选择「复制图片地址」,得到类似https://i.ibb.co/xxxxxx/your-image.jpg的直接链接——这个链接能直接在浏览器中显示图片,而非跳转页面。
2. 修改代码中的image_url参数
替换后的完整代码示例:
import requests import json # 替换为你的有效访问令牌 access_token = 'xxx' user_id = '17841442656991877' # 替换为图片的直接URL image_url = 'https://i.ibb.co/WzfJmWW/your-image.jpg' caption = 'Uploaded with Instagram Graph API.' # 创建媒体容器 media_creation_url = f'https://graph.facebook.com/v19.0/{user_id}/media' media_params = { 'media_type': 'IMAGE', 'image_url': image_url, 'caption': caption, 'access_token': access_token } response = requests.post(media_creation_url, media_params) data = json.loads(response.content) print(json.dumps(data, indent=4)) # 恢复发布流程(如果需要) if 'id' in data: media_id = data['id'] media_publish_url = f'https://graph.facebook.com/v19.0/{media_id}/media_publish?access_token={access_token}' media_publish_response = requests.post(media_publish_url) if media_publish_response.status_code == 200: print("Media publish successful!") else: print("Failed to publish media:", media_publish_response.text)
额外验证点
- 确认图片为JPG/JPEG或PNG格式,文件大小不超过8MB(Instagram Graph API的官方限制)。
- 检查你的access_token已获取
pages_show_list、instagram_basic、pages_manage_posts等必要权限。 - 确保图片URL可公开访问(私有托管的链接会导致API无法读取图片)。
内容的提问来源于stack exchange,提问作者Jann Christopher Garcia
相关产品推荐
相关产品推荐

