我如何才能从Instagram上获得用户的媒体,而不认证为用户呢?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (135)

我试图把一个用户最近的Instagram媒体放在侧边栏上。我试图使用Instagram API来获取媒体。

文件上说https://api.instagram.com/v1/users/<user-id>/media/recent/,但是上面写着要传递一个OAuth访问令牌。访问令牌表示代表用户行事的授权。我不希望用户登录Instagram在侧边栏上看到这个。他们甚至不应该有一个Instagram账户。

在instagram api中,非用户身份验证的请求传递一个client_id而不是access_token

{
  "meta":{
    "error_type":"OAuthParameterException",
    "code":400,
    "error_message":"\"access_token\" URL parameter missing. This OAuth request requires an \"access_token\" URL parameter."
  }
}

所以,这不可能吗?如果用户不首先通过OAuth登录Instagram帐户,就无法获取用户的最新(公共)媒体吗?

提问于
用户回答回答于

开始https://api.instagram.com/v1/users/<user-id>/media/recent/实际上不需要OAuth访问令牌。

https://api.instagram.com/v1/users/[USER ID]/media/recent/?client_id=[CLIENT ID]

客户ID将是通过管理客户端注册的有效客户端ID(与用户无关)。你可以用户ID通过执行GET用户搜索请求从用户名:https://api.instagram.com/v1/users/search?q=[USERNAME]&client_id=[CLIENT ID]

用户回答回答于

var name = "smena8m",
  items;
$.getJSON("https://query.yahooapis.com/v1/public/yql?callback=?", {
  q: "select * from json where url='https://www.instagram.com/" + name + "/?__a=1'",
  format: "json"
}, function(data) {
  console.log(data);
  if (data.query.results) {
    items = data.query.results.json.user.media.nodes;
    $.each(items, function(n, item) {
      $('body').append(
        $('<a/>', {
          href: 'https://www.instagram.com/p/'+item.code,
          target: '_blank'
        }).css({
          backgroundImage: 'url(' + item.thumbnail_src + ')'
        }));
    });
  }

});
html, body {
  font-size: 0;
  line-height: 0;
}

a {
  display: inline-block;
  width: 25%;
  height: 0;
  padding-bottom: 25%;
  background: #eee 50% 50% no-repeat;
  background-size: cover;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

可以下载任何以JSON格式提供的Instagram用户照片提要?__a=1靠近登陆页地址,不需要获得用户ID或注册应用程序,没有令牌,没有OAuth。

min_idmax_id变量可用于分页。

扫码关注云+社区