从 Instagram api 获取个人资料照片 url

Fetch profile photo url from Instagram api

我想为我正在构建的应用程序获取用户 instagram 个人资料照片 url。我创建了一个元开发帐户,添加了我的应用程序,然后添加了 Instagram Basic Display 产品。虚拟帐户已添加到 Instagram 测试人员以生成访问令牌。

因此,可以通过向 https://graph.instagram.com/me/media?fields={fields}&access_token={access-token} 发出请求来获取 all 张照片 urls。但是似乎没有办法识别配置文件中使用的是哪一个。

似乎有一个 profile_pic 字段,但它位于图表 api 而不是我正在使用的基本显示 api 上。该图表 api 适用于企业或创作者,因此不适合我正在构建的内容。

不知道为什么像个人资料照片这样的公开可用资产很难通过 api 获得。

注意: 可能还有其他与此类似的问题,但我发现的问题都比较老,并且是 api 的折旧版本。最近变化很大。

您可以在登录后获得公开可用的资产,例如个人资料照片。尝试 www.instagram.com/{username}/channel/?__a=1 并从 profile_pic_url 或 profile_pic_url_hd 字段中获取数据。

"profile_pic_url": "https://instagram.fkul10-1.fna.fbcdn.net/v/t51.2885-19/s150x150/237125289_314538050357301_4146672331065148847_n.jpg?_nc_ht=instagram.fkul10-1.fna.fbcdn.net&_nc_cat=109&_nc_ohc=bFSJzUFbs6EAX9eZnpD&edm=AAWvnRQBAAAA&ccb=7-4&oh=00_AT8FiYOqxVuxvzPvfKClC7cm5IrLszF2ctooM08-_dVUQw&oe=6202628B&_nc_sid=e7738c",
  "profile_pic_url_hd": "https://instagram.fkul10-1.fna.fbcdn.net/v/t51.2885-19/s320x320/237125289_314538050357301_4146672331065148847_n.jpg?_nc_ht=instagram.fkul10-1.fna.fbcdn.net&_nc_cat=109&_nc_ohc=bFSJzUFbs6EAX9eZnpD&edm=AAWvnRQBAAAA&ccb=7-4&oh=00_AT9gj3HCB2OY7c6fYyaxik15mwOKu4bMM7siim1coR4Axw&oe=620263B3&_nc_sid=e7738c",
  "requested_by_viewer": false,
  "should_show_category": false,
  "should_show_public_contacts": false,
  "username": "waqas_obeidy",
  "connected_fb_page": null,

奇怪的是,Instagram 不提供任何访问用户个人资料图片的标准方式。

Waqas 给出的答案是正确的一般方法,但需要用户登录并且如果使用任何频率都容易被 Instagram 阻止。

我找到的解决方案涉及使用单独获得的 csrf 令牌以编程方式登录 Instagram。然后将 cookie 保存到 Firestore 以供将来登录使用,这样 Instagram 就不会禁止发出请求的帐户。在 Waqas 提供的地址上再次调用 Instagram,并使用之前获得的 cookie 允许从 JSON 中获取 profile_pic_url_hd 值。最后,使用个人资料图片的 url 再次调用 Instagram,以便将照片本身保存到 Firestore。