2016-08-11 28 views
0

返回所有图片我使用这个URL来返回标记YOLO所有图像计数: https://api.instagram.com/v1/tags/yolo?access_token=Instagram的API网址带有特定标签

反正是有回报的图像URL及其元数据以及?我似乎只能获得与访问令牌相关的用户的图像URL。

我可以通过下面的调用来取回Instagram所需要的数据。我如何将.window._sharedData解压缩为json对象?

var xhr = new XMLHttpRequest(); 
 
xhr.open('GET', "https://www.instagram.com/explore/tags/yolo/"); 
 
xhr.onload = function() { 
 
    if (xhr.status === 200) { 
 
     var result = xhr.responseText; 
 
     // .window._sharedData; 
 
     console.log(result); 
 
     // ('request successful ' + xhr.responseText.); 
 

 
    } 
 
    else { 
 
     console.log('request failed: ' + xhr.status); 
 
    } 
 
}; 
 
xhr.send();

回答

0

为了让所有的媒体和相关的元数据,您需要使用GET /tags/tag-name/media/recent功能,像这样:https://api.instagram.com/v1/tags/yolo/media/recent?access_token=

首先你会得到20名单(如果我没有记错,现在无法检查)最近的媒体(图像和/或视频),然后你必须检查你得到的最后一个媒体项目的ID。然后,您只需创建一个新的请求MIN_TAG_ID设置为该值。

重复,直到你有来自该标记的所有媒体。

基本上,在返回项目列表的Instagram API中的所有函数都会启用某种分页。您只需要逐页请求结果即可获得完整的集合。


如果您测试您的沙箱应用程序,你会得到不同的结果集比实时应用将得到的。下面是从的Instagram的API文档的解释:

再举一个例子,让我们考虑返回的媒体列表的端点:/tags/{tag-name}/media/recent。按照预期,此端点返回的响应将只包含具有给定标记的媒体。但不是从任何公共Instagram用户返回媒体,它将只返回属于您的沙箱用户的媒体,限于每个用户的最后20个媒体。

+0

这只会返回带有该标记的用户图像。我使用的网址将使用该标签返回网站上所有图片的计数。你知道我怎样才能让所有用户使用该标签获取所有图片吗? – realbadrabbits

+0

@TimmyTimmy你确定吗?该函数应该返回所有用户针对该特定主题标签的所有媒体。你只需要浏览所有的页面,你就会发现结果列表中的媒体与你的原始函数返回的计数匹配。 – hankide

+0

这是我得到的回报:{“pagination”:{“deprecation_warning”:“此终结点不推荐使用next_max_id和min_id;使用min_tag_id和max_tag_id代替”},“meta”:{“code”:200}“data “:[]}数据数组是空的? – realbadrabbits

相关问题