You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python借助Facebook开发者提供的Instagram API自动发帖?

使用Facebook Graph API结合requests通过Access Token发Instagram帖子

背景

你已经在Facebook开发者平台创建了应用,拿到了测试用户的Access Token,不想再用instagrapi(每次登录要输2FA验证码),想改用requests调用Graph API来发帖子到你的Instagram页面。

必要权限先确认

你的Access Token必须有这些权限,申请的时候要勾选:

  • pages_show_list:获取关联的Instagram页面信息
  • pages_manage_posts:管理页面帖子
  • instagram_basic:访问Instagram基础数据
  • pages_read_engagement:读取页面互动数据

具体操作步骤+代码

1. 拿到Instagram业务账户ID

首先得通过你的Facebook页面ID,找到对应的Instagram业务账户ID:

import os
import requests
from dotenv import load_dotenv

load_dotenv()

access_token = os.getenv("INSTAGRAM_TOKEN")
graph_url = "https://graph.facebook.com/v17.0/"

# 换成你自己的Facebook页面ID(在Facebook页面设置里能找到)
facebook_page_id = "你的Facebook页面ID"

def get_instagram_account_id(page_id):
    url = f"{graph_url}{page_id}?fields=instagram_business_account&access_token={access_token}"
    res = requests.get(url)
    return res.json()["instagram_business_account"]["id"]

ig_account_id = get_instagram_account_id(facebook_page_id)

2. 上传图片并发布

Graph API不能直接读本地图片,得先把图片传到公网(比如云存储、图床)拿到可访问的URL,然后分两步上传发布:

def post_to_instagram(account_id, image_url, caption):
    # 第一步:创建媒体容器
    create_media_url = f"{graph_url}{account_id}/media"
    create_data = {
        "image_url": image_url,
        "caption": caption,
        "access_token": access_token
    }
    create_res = requests.post(create_media_url, data=create_data)
    media_id = create_res.json()["id"]

    # 第二步:发布媒体
    publish_url = f"{graph_url}{account_id}/media_publish"
    publish_data = {
        "creation_id": media_id,
        "access_token": access_token
    }
    publish_res = requests.post(publish_url, data=publish_data)
    return publish_res.json()

3. 完整调用

替换成你的公网图片URL后,直接调用函数:

if __name__ == '__main__':
    # 本地图片先上传到公网,拿到这个URL
    public_image_url = "https://你的公网图片地址"
    test_caption = "Test!"
    post_result = post_to_instagram(ig_account_id, public_image_url, test_caption)
    print(post_result)

注意点

  • 必须用公网图片URL,本地文件无法被Graph API访问
  • 测试用户的Access Token可能有有效期,到期可以去开发者平台刷新
  • 如果返回错误提示权限不足,直接去开发者平台的应用权限设置里申请对应权限

内容的提问来源于stack exchange,提问作者Dr. Dark Flames

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 02:16:44