You need to enable JavaScript to run this app. 如何通过Facebook Graph API获取Instagram短码对应媒体ID及相关指标
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Facebook Graph API获取Instagram短码对应媒体ID及相关指标

Instagram短码提取媒体ID的实现方案

1. 你提到的oEmbed接口方案

旧版的api.instagram.com/oembed接口已经废弃,目前需要调用Facebook Graph API的官方oEmbed端点,需要提前准备好已过审的Facebook开发者应用、对应的访问令牌:

  • 调用格式参考:GET /v18.0/instagram_oembed?url=https://www.instagram.com/p/CP2rpLyCwPn/&access_token=你的应用访问令牌
  • 返回响应中直接包含media_id字段,拿到该ID后即可调用GET /{media_id}接口拉取你需要的caption、media_product_type、comments_count等全量字段。

注意:该接口支持公开帖子、Reels、IGTV等所有公开Instagram媒体类型的ID查询,私有内容调用会返回错误。

2. 本地短码转ID方案(无需接口调用)

Instagram的公开短码本质是媒体ID的Base64编码结果,你可以直接在本地通过编码转换得到媒体ID,不需要发起网络请求:

  • 自定义字符映射表为:ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_
  • 转换逻辑:将短码每个字符对应到映射表的索引值,逐字符左移6位累加,最终得到的十进制值就是媒体ID
  • 代码示例(Python):
def shortcode_to_id(shortcode):
    chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'
    id = 0
    for c in shortcode:
        id = (id << 6) + chars.index(c)
    return id

# 测试你给出的短码
print(shortcode_to_id('CP2rpLyCwPn'))

该方法仅对公开媒体有效,私有账号的媒体用转换后的ID调用Graph API会返回权限错误。

3. Graph API直接查询方案

如果你已经对接了Instagram Business Discovery API,可以直接通过短码过滤查询对应媒体的ID和全量字段,不需要提前做ID转换:

  • 调用格式参考:GET /v18.0/{你的Instagram商业账号ID}?fields=business_discovery.username({发布帖子的账号用户名}){media{shortcode,id,caption,comments_count}}&access_token=你的访问令牌
  • 从返回的媒体列表中筛选shortcode为目标值的条目,即可直接获取对应的ID和所有你需要的字段。

内容的提问来源于stack exchange,提问作者monica reddy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 19:45:02