You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Instagram API获取其他用户的媒体内容

如何用自身Access Token获取其他用户的Instagram媒体内容

首先,你遇到的问题核心有两个:端点参数错误API权限/规则限制,咱们一步步拆解:

1. 老v1 API的问题(你当前使用的版本)

你直接把self换成用户名是行不通的,因为v1 API的/users/{user-id}/media/recent/端点要求传入的是用户ID,不是用户名。另外,这个API版本已经被Instagram官方废弃,不再维护,即便参数调整正确,也大概率无法正常返回数据。

如果非要尝试老API的话,得先通过用户名获取目标用户的ID,用这个端点:

$url = 'https://api.instagram.com/v1/users/search?q=' . $username . '&access_token=' . $token;

拿到用户ID后,再替换到媒体获取的端点里:

$url = 'https://api.instagram.com/v1/users/' . $user_id . '/media/recent/?access_token=' . $token;

但要注意两个硬限制:

  • 只有目标账号是公开账号才可能返回数据
  • 你的Access Token需要拥有public_content权限,这个权限现在需要向Instagram申请审核,个人开发者很难获批

2. 推荐使用Instagram Graph API(当前官方支持的版本)

现在Instagram官方只维护Graph API,步骤更规范,稳定性也更高:

前提条件

  • 你的Access Token需要有instagram_basic权限
  • 目标账号是公开账号,或者你已经获得了私有账号用户的授权(即用户通过你的应用登录并允许你访问他们的内容)

获取其他用户媒体的具体步骤

  1. 先通过用户名获取目标用户的IG用户ID:
$url = 'https://graph.facebook.com/v18.0/ig_user_search?username=' . $username . '&access_token=' . $token;
  1. 用拿到的IG用户ID获取最近媒体内容(可按需添加更多字段):
$url = 'https://graph.facebook.com/v18.0/' . $ig_user_id . '/media?fields=id,caption,media_url&access_token=' . $token;

关键规则提醒

  • 私有账号的媒体:除非用户主动授权你的应用,否则无论用什么方法都无法获取
  • 权限审核:所有涉及用户数据的权限都需要向Meta(原Facebook)申请审核,没有合规的应用场景,个人开发者很难通过
  • 速率限制:API调用有频次上限,频繁请求会被临时限流

内容的提问来源于stack exchange,提问作者piyush marothi

火山引擎 最新活动