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

Instagram Graph API Business Discovery无法返回Reels的media_url求助

Reels media_url无法获取的解决办法

问题原因

  • Reels的media_url并非Business Discovery接口默认返回字段,批量查询时若未明确指定,大概率不会返回。
  • 早期Reels返回media_url属于历史兼容情况,后续API调整了Reels字段的返回规则,需主动声明获取。

解决步骤

1. 明确指定请求字段

确保fields参数中包含media_url,修改字段配置示例:

fields = "media{id,like_count,comments_count,timestamp,username,media_product_type,media_type,media_url}"

将该字段加入查询后,接口会尝试返回Reels的media_url(需权限允许)。

2. 单独请求单条Reel详情

若批量查询仍无法拿到media_url,针对每个Reel的ID单独调用媒体详情接口:

def get_reel_media_url(version, reel_id, access_token):
    url = f"https://graph.facebook.com/{version}/{reel_id}?fields=media_url&access_token={access_token}"
    return requests.get(url).json().get("media_url")

# 遍历媒体数据补全Reels的media_url
for media_item in result["business_discovery"]["media"]["data"]:
    if media_item["media_product_type"] == "REELS":
        media_item["media_url"] = get_reel_media_url(version, media_item["id"], accessToken)

这种方式直接获取单条Reel的核心字段,绕过批量查询的字段限制。

3. 核对权限与API版本

  • 确认应用已获得instagram_basic、pages_read_engagement(关联FB页面时)权限;
  • 使用v18.0及以上的API版本,旧版本对Reels字段支持有限。

验证效果

调整后执行代码,Reels数据应包含media_url字段:

print(result["business_discovery"]["media"]["data"][0])
# 示例输出:
# {'id': 'firstID', 'like_count': 6904, 'comments_count': 42, 'timestamp': '2023-06-14T09:09:25+0000', 'username': 'username', 'media_product_type': 'REELS', 'media_type': 'VIDEO', 'media_url': 'https://example.com/reel.mp4'}

内容的提问来源于stack exchange,提问作者Akira Yoshimura

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 11:07:44