【问题标题】:Instagram Square photos APIInstagram 广场照片 API
【发布时间】:2015-11-22 12:22:57
【问题描述】:

Instagram 是否会提供任何通过 API 抓取肖像/风景的方法? API 文档看起来没有改动。

到目前为止,他们仍然返回肖像图像的正方形大小,但 api 文档没有提供任何获取原始图像的方法。

他们会继续返回方形图像吗? Instagram 有没有关于这方面的内容?

【问题讨论】:

  • 您应该联系 Instagram 寻求答案。
  • @DanielStorm,他们建议使用 StackOverflow 来解决这些问题。 “Stack Overflow 社区是询问 API 相关问题或在代码方面需要帮助的好地方。确保使用 Instagram 标签标记您的问题,以便从其他开发人员那里快速获得答案。” instagram.com/developer/support
  • 我是说你应该直接联系 Instagram,因为没有人可以回答这个问题。你的猜测和我的猜测一样好,其他任何人都在 Stack Overflow 上。 Instagram 是唯一一个知道 Instagram 未来会做什么的人。
  • @PedroCasado 查看我的更新答案。 Instagram 在 API 客户端上推出了一项新设置,现在将返回矩形(用于肖像、风景)图像。
  • @Shiva 太棒了!他们终于添加了一些关于此的文档。

标签: instagram instagram-api


【解决方案1】:

九月。 2015 年第 4 次更新:

自 2015 年 9 月 3 日起,instagram now allows API clients to get the images in their original aspect ratio(即矩形用于风景、肖像)并且不会裁剪它们,如果您在 API 客户端中更新了新设置。

步骤:

  1. https://instagram.com/developer/ 上登录到您的客户端应用程序设置
  2. 点击顶部导航菜单上的管理客户
  3. 找到您的 API 客户端,然后点击编辑
  4. 点击 API 客户端应用程序的 迁移 选项卡,然后选中“非方形媒体”复选框。
  5. 点击更新客户端

就是这样!现在,当您从 API 端点获取图片时,上传的人像、风景不会被裁剪为方形图像,而是会返回原始图像。

相关博文:API migration for landscape and portrait formats

上一个答案(已弃用,除非您想要方形和非方形版本,否则不要使用,仍然很hacky :))

是的,API 看起来没有受到任何影响,但我找到了获取风景和肖像原始图像的方法。您必须以编程方式删除 images 数组中返回的部分 url。

见下文——来自my answer here的sn-p。

API 仍在返回图片的方形版本,即使是作为肖像或风景上传的图片。如果您还想要原始的横向/纵向图像,您必须做一些小技巧——详细信息如下——直到他们在他们的 API 响应中解决它。

让我们举个例子来看看吧。

看到IG's blog post / press release中提到的一位用户上传的这张泰勒斯威夫特的照片——@johnbenett

https://instagram.com/p/6ZVIHTJLYg/

这是上传的原始照片 - 人像 512 像素 x 640 像素

这是 Instagram API 返回的内容,用于上述肖像图像的各种图像(包括缩略图)。

  "images": {
    "low_resolution": {
      "url": "https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s320x320/e35/c0.135.1080.1080/11909195_1715998838621946_791786043_n.jpg",
      "width": 320,
      "height": 320
    },
    "thumbnail": {
      "url": "https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s150x150/e35/c0.135.1080.1080/11909195_1715998838621946_791786043_n.jpg",
      "width": 150,
      "height": 150
    },
    "standard_resolution": {
      "url": "https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s640x640/sh0.08/e35/c0.135.1080.1080/11909195_1715998838621946_791786043_n.jpg",
      "width": 640,
      "height": 640
    }

因此,该人像图像的 API 返回的标准分辨率图像是 640 像素正方形,看起来像这样。

API 为这个人像图像返回的低分辨率图像是 320 像素正方形,看起来像这样。

最后但并非最不重要的一点是,API 返回的此人像图像的缩略图是 150 像素正方形,看起来像这样。

那么如何获取上传为风景或肖像的照片的原始图像?

由于 API 到目前为止只返回 1 组图像,但该站点能够显示原始纵横比图像,我做了一些挖掘,并意识到如果你从 url 中删除最后但 1 部分方形图像 url(在本例中,删除 /c0.135.1080.1080 )您将获得原始纵横比大小(且未裁剪)的横向、纵向图像。

保持与上面相同的示例:

标准分辨率肖像图片(512 像素 x 640 像素)网址: https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s640x640/sh0.08/e35/11909195_1715998838621946_791786043_n.jpg

它看起来像这样。

低分辨率肖像图片(256 像素 x 320 像素)网址: https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s320x320/e35/11909195_1715998838621946_791786043_n.jpg

它看起来像这样。

缩略图肖像图像(120 像素 x 150 像素)网址: https://scontent.cdninstagram.com/hphotos-xfa1/t51.2885-15/s150x150/e35/11909195_1715998838621946_791786043_n.jpg

它看起来像这样。

希望这会有所帮助。

【讨论】:

  • 太棒了!棘手的 /c0.135.1080... 没有出现在我的图像上。 instagram.com/p/654Dvup_k3
  • 该字符串并不总是相同的。所以你要做的就是以编程方式,使用substring函数或regex,从方形版本中删除图像url的最后一段,以获得相应的纵向或横向版本。我会通过 api 看看你的图片...
  • 是的,我尝试过类似的方法,但我的图像没有最后一段。scontent.cdninstagram.com/hphotos-xaf1/t51.2885-15/s640x640/…
  • 您的图像没有最后一个片段,因为它看起来像是作为方形图像上传的(肖像照片的左右有白色部分)。也就是说,原来的照片是一张人像,但是你上传到instagram的时候,它被做成了一张方形的照片然后上传了。
  • instagram 也正在逐步推出此功能,就像他们为其他主要更新所做的那样。除非您手机上的版本显示横向、纵向翻转图标(正如他们在宣布此功能的博客文章中显示的那样),否则您的所有照片和视频都将作为方形照片上传
猜你喜欢
  • 2018-07-07
  • 1970-01-01
  • 2015-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多