在instagram API中显示超过20张照片

时间:2012-09-07 02:44:12

标签: javascript jquery instagram

我一直在做一些研究,并试图弄清楚如何显示超过20张来自instagram api的图像。我是新手,所以任何帮助将不胜感激!试着看看是否有任何工作?看到一些关于添加可能有帮助的分页的东西..如果那个案例细节如何做到这一点也会很棒!

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

<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>

11 个答案:

答案 0 :(得分:11)

Instagram对其API有20个图像限制,请查看此主题和我的回答:

What is the maximum number of requests for Instagram?

编辑:另外,请查看THIS

答案 1 :(得分:5)

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

  • 沙箱中的应用仅限10个用户
  • 数据仅限10位用户和每位用户的20种最新媒体
  • 降低API费率限制

more info

答案 2 :(得分:3)

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

答案 3 :(得分: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;
}

答案 4 :(得分:1)

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

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

答案 5 :(得分:1)

通过指定count参数并将其设置为您想要的数字,您可以获得超过20个项目。

但是,对于你提出的每个请求,Instagram还会对你的无记录限制为33,因此如果你的请求超过33,你就必须分页。

但是,我写了Instafetch来帮助你分页,它甚至会为你过滤媒体标签。所以随意使用它!

答案 6 :(得分:1)

如果您是沙盒用户,则不能获得超过20个帖子 请阅读“API BEHAVIOR”here

答案 7 :(得分:0)

实际上,有机会获得接下来的20张照片,然后是接下来的20张,依此类推...... 在JSON响应中,有一个&#34; 分页&#34;阵列:

 "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调用和对象的信息&#34; next_url &#34;显示获取下20张图片的网址,以便获取该网址,并在接下来的20张图片中调用它...

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

答案 8 :(得分:0)

您可以使用Instagram instafeed这样的Instagram Feed库。它允许获得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分。

答案 9 :(得分: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 photos

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

答案 10 :(得分:0)

老问题。新答案。

这是 2021 年的解决方案。

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

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

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

以下 cURL 代码示例使用的是 Me endpoint

GET https://graph.instagram.com/me
    ?fields={fields}
    &access_token={access-token}
    &limit={required number of items}