16

私はいくつかの調査を行っており、InstagramAPIから取得されている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

http://instagram.com/developer/endpoints/を参照してください。エンドポイントのジェネリックについて詳しく説明し、ページネーション属性も一覧表示します。つまり、「ページ化された」応答にはnext_url、次の結果セットを取得するために使用できるが含まれます。続いてすべての次のURLを取得すると(結果で提供されている限り)、完全なセットが取得されます。

countところで、リクエストのパラメータを増やすことを試みることができます。(使用しているInstagramライブラリによっては、そのようなものをoptionsハッシュなどで提供できます。)これにより、追加のリクエストをいくつか節約できる可能性があります。ただし、先ほど説明したページでは、最大カウント値が指定されていません。Instagramが動的に、そしてエンドポイントごとに最大値を変更しているのではないかと思います。

于 2012-12-03T21:58:53.773 に答える
1

countパラメーターを指定して、必要な数に設定することで、20 個以上のアイテムを取得できます。

ただし、Instagram では、文書化されていないすべてのリクエストに対して 33 の制限も課しているため、33 を超える場合はページネーションする必要があります。

ただし、ページネーションに役立つInstafetchを作成しました。タグでメディアをフィルター処理することもできます。ので、ご自由にお使いください!

于 2015-02-06T05:35:01.327 に答える
1

20 件以上の投稿を取得することはできません。サンドボックス ユーザーの場合は、こちらの「API の動作」をお読みください。

于 2016-08-17T10:13:16.543 に答える
0

instafeedなどの Instagram フィード ライブラリを使用できます。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 に答える