Instagram API URL可返回具有特定标记的所有图像

时间:2016-08-11 22:14:41

标签: javascript api instagram

我正在使用此网址返回所有使用yolo标记的图片的计数: https://api.instagram.com/v1/tags/yolo?access_token=

无论如何还要返回图片网址及其元数据吗?我似乎只能抓住用户与访问令牌相关的图片网址。

我可以通过以下调用抓取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();

1 个答案:

答案 0 :(得分: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个