我一直在尝试使用 instagram API(带有 Instagram 登录的 API - 内容发布)来发布轮播媒体容器。我按照文档中概述的所有步骤进行操作(我的 Instagram 帐户 ID 和访问令牌取自我的应用程序的 Meta Developer 网站),并且能够创建单独的图像容器(其中
is_carousel_item
为 true),但一旦我尝试发布轮播容器(详见创建轮播容器的步骤2),出现以下错误:
POST https://graph.instagram.com/v20.0/{INSTAGRAM_ACCOUNT_ID}/media
{
"caption": "...",
"media_type":"CAROUSEL",
"children": [<IMG1_ID>,<IMG2_ID>]
}
400 BAD REQUEST
{
"error": {
"message": "Invalid parameter",
"type": "OAuthException",
"code": 100,
"error_subcode": 2207030,
"is_transient": false,
"error_user_title": "Invalid carousel children",
"error_user_msg": "The children with IDs <IMG1_ID>, <IMG2_ID>are invalid, non-existent or expired.",
"fbtrace_id": "AIZShdt_SCAHtmnY2ypXOfm"
}
}
我尝试检查所有权限是否都按顺序排列(确实如此)。我尝试发布到的 Instagram 帐户位于我的应用程序的应用程序角色下(作为 Instagram 测试人员)。
还满足通过 Instagram API 通过 Instagram 登录发布内容的相关权限(
instagram_business_basic
和 instagram_business_content_publish
的标准访问权限)。访问令牌包含在我作为标头中的承载令牌发送的请求中。
我还尝试创建一个单图像媒体容器(可以工作 - JSON 中没有 is_carousel_item 字段),但无法发布它,如下所示:
POST https://graph.instagram.com/v20.0/{{INSTAGRAM_ACCOUNT_ID}}/media_publish
{
"creation_id": <SINGLE_IMG_ID>
}
400 BAD REQUEST
{
"error": {
"message": "The requested resource does not exist",
"type": "OAuthException",
"code": 24,
"error_subcode": 2207008,
"is_transient": false,
"error_user_title": "Media builder not found",
"error_user_msg": "The media builder with creation ID <SINGLE_IMG_ID> does not exist or has expired.",
"fbtrace_id": "AMatiUFYiW3iyqFpqVptZFB"
}
}
图像 URL 均托管在公共 AWS S3 存储桶上,并且在文档(.jpg 扩展文件)中规定的限制范围内公开可用。
当我尝试查询相关媒体容器ID时,它也会抛出错误。
我还尝试通过重定向和回调到我的服务器来获取 Instagram Business 登录访问令牌,并在我的请求中使用它,但没有成功。
{
"access_token": "IG...",
"user_id": ...,
"permissions": [
"instagram_business_basic",
"instagram_business_manage_messages",
"instagram_business_content_publish",
"instagram_business_manage_comments"
]
}
我也遇到了完全相同的问题。对于图像上传,文档似乎暗示应该返回 URI 以及容器 ID,但我不明白。
当我也调用 /media 端点时,我没有返回任何数据。
这一切让我想知道容器创建是否没有成功,尽管返回了 200。