16

我一直在做一些研究并试图弄清楚如何显示从 instagram api 中提取的 20 多张图像。我对此很陌生,所以任何帮助将不胜感激!只是想看看有没有解决办法?看到了一些关于添加可能有帮助的分页的东西。如果是这样的话,关于如何做到这一点的细节也很棒!

这是我到目前为止的代码。

<script type="text/javascript">
    $.ajax({
        type: "GET",
        dataType: "jsonp",
        cache: false,
        url: "https://api.instagram.com/v1/tags/coffee/media/recent?client_id=[]&access_token=[]",
        success: function(data)  {
            for (var i = 0; i < 20; i++) {
                $(".instagram").append("<a class='big-square span2' target='_blank' href='" + data.data[i].link +"'><img src='" + data.data[i].images.low_resolution.url +"'></img></a>");
            }
        }
    });
</script>
4

11 回答 11

11

Instagram 对其 API 有 20 张图片限制,请查看此线程和我的答案:

Instagram 的最大请求数是多少?

编辑:另外,看看这个

于 2012-09-11T17:31:53.177 回答
5

2015 年 11 月 17 日之前创建的任何应用程序将继续运行至 2016 年 6 月。2016 年 6 月之后,如果未通过审核流程,该应用程序将自动进入沙盒模式。
沙盒模式是真实的 Instagram 数据(即通常在 Instagram 应用程序中可见的数据),但具有以下条件:

  • 沙盒中的应用程序限制为 10 个用户
  • 数据仅限于 10 个用户和每个用户的 20 个最新媒体
  • 降低 API 速率限制

更多信息

于 2016-01-24T11:22:07.847 回答
4

尝试添加&count=N到请求中,其中 N 是您想要的结果数。

于 2012-09-07T02:54:30.157 回答
3

试试这个代码

$api = "https://api.instagram.com/v1/tags/snow/media/recent?client_id=".$client;  

function get_curl($url) {  
    if(function_exists('curl_init')) {  
        $ch = curl_init();  
        curl_setopt($ch, CURLOPT_URL,$url);  
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  
        curl_setopt($ch, CURLOPT_HEADER, 0);  
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);  
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);   
        $output = curl_exec($ch);  
        echo curl_error($ch);  
        curl_close($ch);  
        return $output;  
    } else{  
        return file_get_contents($url);  
    }  
}

while ($api !== NULL) {
    $response = get_curl($api);
    foreach(json_decode($response)->data as $item){   
        $src = $item->images->standard_resolution->url;  
        $thumb = $item->images->thumbnail->url;  
        $url = $item->link;  

        $images[] = array(  
        "src" => htmlspecialchars($src),  
        "thumb" => htmlspecialchars($thumb),  
        "url" => htmlspecialchars($url)  
        );  
    echo "<a href='".$src."'><img src='".$thumb."'  width='150' height='150' border='0'></a> ";
    } 
    $api = json_decode($response)->pagination->next_url;
}
于 2012-11-07T09:11:39.563 回答
1

count你可以通过指定一个参数并设置为你想要的数字来获得20多个项目。

但是,Instagram 还对您提出的每个请求施加了 33 个未记录的限制,因此如果您收到超过 33 个请求,则必须分页。

但是,我已经编写了 Instafetch,它可以帮助您进行分页,它甚至可以为您按标签过滤媒体。所以请放心使用!

于 2015-02-06T05:35:01.327 回答
1

请参阅http://instagram.com/developer/endpoints/。它详细介绍了端点的泛型,还列出了分页属性。简而言之,一个“分页”响应将包括一个next_url可用于检索下一组结果的。随后检索所有下一个 URL(只要它们在结果中提供)将为您提供完整的集合。

BTW,您可以尝试增加count请求中的参数。(根据您使用的 Instagram 库,可以通过options哈希或类似的方式提供此类内容。)这可能会为您节省一些额外的请求。我刚刚提到的页面没有指定最大计数值。我怀疑 Instagram 正在动态更改每个端点的最大值。

于 2012-12-03T21:58:53.773 回答
1

您不能获得超过 20 个帖子,如果您是沙盒用户,请在此处阅读“API BEHAVIOUR”下的内容

于 2016-08-17T10:13:16.543 回答
0

实际上,有机会获得接下来的 20 张图片,然后是接下来的 20 张等等……在 JSON 响应中有一个“分页”数组:

 "pagination":{
      "next_max_tag_id":"1411892342253728",
      "deprecation_warning":"next_max_id and min_id are deprecated for this endpoint; use min_tag_id and max_tag_id instead",
      "next_max_id":"1411892342253728",
      "next_min_id":"1414849145899763",
      "min_tag_id":"1414849145899763",
      "next_url":"https:\/\/api.instagram.com\/v1\/tags\/lemonbarclub\/media\/recent?client_id=xxxxxxxxxxxxxxxxxx\u0026max_tag_id=1411892342253728"
 }

这是有关特定 API 调用的信息,对象“ next_url ”显示获取接下来 20 张图片的 URL,因此只需获取该 URL 并为接下来的 20 张图片调用它...

有关 Instagram API 的更多信息,请查看:https ://medium.com/@KevinMcAlear/getting-friendly-with-instagrams-api-abe3b929bc52

于 2015-03-18T22:13:16.853 回答
0

您可以使用 Instagram 提要库,例如instafeed。它允许获取 60 张图像的提要(最多)

例如:

<script type="text/javascript">
    var feed = new Instafeed({
        get: 'tagged',
        tagName: 'awesome',
        limit: 20,
        clientId: 'YOUR_CLIENT_ID'
    });
    feed.run();
</script>

limit (number) - 要添加的最大图像数。最多 60 个。

于 2015-05-25T09:38:17.257 回答
0

老问题。新答案。

这是2021年的解决方案。

您将需要使用Instagram Basic Display API来显示媒体项目。(这个答案不包括设置)。

假设上述设置正确,您可以使用limit参数来控制 API 返回多少媒体结果

默认值为 25(未设置限制),允许的最大值为100 。(您可能会使用分页获得更多结果,但这又是题外话了)。

下面的 cURL 代码示例使用Me 端点

GET https://graph.instagram.com/me
    ?fields={fields}
    &access_token={access-token}
    &limit={required number of items}
于 2021-05-18T01:01:26.280 回答
0
<script>
    var token = 'your_token',
    userid = your_id,
    num_photos = 12;
    $.ajax({
            url: 'https://api.instagram.com/v1/users/'+userid+'/media/recent',
            dataType: 'jsonp',
            type: 'GET',
            data: {access_token: token, count: num_photos},
            success: function(data){
                console.log(data);
            },
            error: function(data){
            }
        });
</script>

12 张照片

https://rudrastyh.com/javascript/get-photos-from-instagram.html

于 2017-02-10T02:32:10.130 回答