如何使用graph API在Instagram上发布?

问题描述 投票:0回答:1

总结

我一直在尝试使用 Instagram API 在 Instagram 上发布 reels。然而,到目前为止我的尝试都没有成功。

我的设置

  • 我在developers.facebook.com上使用未经审核的应用程序
  • 我想在我拥有的 Instagram 页面上发布(企业帐户)
  • 此页面已作为 Instagram 测试器添加到应用程序中

使用的文档

我一直在关注 developers.facebook.com

上的文档页面

我的过程

第 1 步:OAuth

这部分是我直接从开发人员仪表板完成的。我获得的令牌具有以下权限:

  • 业务_基本
  • 业务管理消息
  • 业务_内容_发布
  • 业务_管理_评论

第2步:创建媒体容器

对于这部分,我正在按照文档的说明进行操作。

def create_instagram_media_container(ig_id: str, video_url: str, access_token: str):
    url = f"https://graph.instagram.com/v20.0/{ig_id}/media"
    headers = {
        "Content-Type": "application/json",
    }
    data = {
        "media_type": "REELS",
        "video_url": video_url
    }
    response = requests.post(url, headers=headers, json=data)

    if response.status_code == 200:
        return response.json()
    else:
        response.raise_for_status()

通过此步骤我可以获得容器 ID。

注意:在线阅读材料后,我尝试了一些变化,包括在标题中添加

"Authorization": f"OAuth {access_token}"
和在数据中添加
"upload_type": "resumable"
,但这并没有解决问题。

第3步:发布容器

我再次遵循文档。

def upload_instagram_video(ig_id: str, ig_container_id: str, access_token: str):
    url = f"https://graph.instagram.com/v20.0/{ig_id}/media_publish"
    headers = {
        "Content-Type": "application/json"
    }
    data = {
        "creation_id": ig_container_id,
    }
    response = requests.post(url, headers=headers, json=data)

    if response.status_code == 200:
        return response.json()
    else:
        response.raise_for_status()

然而,在这个阶段,我收到错误。

起初我有以下描述:

b'{"error":{"message":"Unsupported post request. Object with ID \'[...]\' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https:\\/\\/developers.facebook.com\\/docs\\/graph-api","type":"GraphMethodException","code":100,"error_subcode":33,"fbtrace_id":"AKe1_Gl1c5kNSTrKHPYuyHG"}}'

但现在我只收到 400 错误,指出“抱歉,此内容现在不可用”。

注意:在网上阅读材料后,我也尝试在此处的标题中添加

"Authorization": f"OAuth {access_token}"
,但这并没有解决它。

我的想法

对于混乱可能来自何处,我有一些想法,但我并没有真正设法从中得到任何东西。

  • Endpoints:我正在查询
    graph.instagram.com
    端点,但还有一个
    graph.facebook.com
    。这看起来更完整一点,因为文档提到了标题等额外字段,但我也没有设法让它工作。我认为我仍然应该选择 Instagram 的,因为文档指出“与具有 Facebook 登录功能的 Instagram API 不同,此 API 不需要链接到 Instagram 专业帐户的 Facebook 页面。”这看起来更简单。
  • Token:在线阅读时,我可以看到一些提到页面令牌和用户令牌之间的区别。我真的不明白其中的区别。我直接从开发者网站的“Instagram”选项卡生成了我的令牌,那里没有这样的区别。根据 迁移指南,我猜它在这种情况下不适用,因为我正在使用 Instagram API 设置和 Instagram 登录。

连续尝试了几天后,我现在完全迷失了。我们将非常感谢您的帮助。谢谢!

facebook facebook-graph-api instagram instagram-api
1个回答
0
投票

这个错误目前还没有修复,我想每个人都有这个错误。 此错误已报告给meta本身: https://developers.facebook.com/community/threads/1819400801919840/

© www.soinside.com 2019 - 2024. All rights reserved.