web-dev-qa-db-fra.com

Affichage de plus de 20 photos dans l'API instagram

Je fais des recherches et j'essaie de trouver comment afficher plus de 20 images extraites de l'API instagram. Je suis assez nouveau dans ce domaine alors toute aide serait la bienvenue! J'essaie juste de voir s'il y a des solutions de rechange? Vous avez vu quelque chose à propos d’ajouter une pagination qui pourrait éventuellement aider… si c’est le cas, les détails sur la façon de le faire seraient très bien aussi!

Voici le code que j'ai jusqu'à présent.

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

Instagram a une limite de 20 images sur leur API, consultez ce fil et ma réponse

Quel est le nombre maximum de demandes pour Instagram?

EDIT: regardez aussi THIS

10
tcd

Toute application créée avant le 17 novembre 2015 continuera de fonctionner jusqu'en juin 2016. Après juin 2016, l'application sera automatiquement transférée en mode Sandbox si elle n'a pas été approuvée par le processus de révision.
Le mode bac à sable sont de vraies données Instagram (c’est-à-dire ce qui est normalement visible dans l’application Instagram), mais dans les conditions suivantes:

  • Les applications dans le bac à sable sont limitées à 10 utilisateurs
  • Les données sont limitées aux 10 utilisateurs et aux 20 derniers médias de chacun de ces utilisateurs
  • Limites de taux d'API réduites

Plus d'informations

5
Ayhan Salami

Essayez ce code

$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;
}
3
liding

Essayez d’ajouter &count=N à la demande, N étant le nombre de résultats souhaités.

3
hayk.mart

Vous pouvez obtenir plus de 20 éléments en spécifiant un paramètre count et en le définissant sur le nombre souhaité.

Cependant, Instagram impose également une limite non documentée de 33 pour chaque demande que vous faites, et vous devrez donc paginer si vous en recevez plus de 33.

Cependant, j'ai écrit Instafetch qui vous aidera à paginer, il filtrera même les médias par balises. Alors n'hésitez pas à l'utiliser!

1
d4nyll

Voir http://instagram.com/developer/endpoints/ . Il détaille les génériques des points de terminaison et répertorie également les attributs de pagination. En bref, une réponse "paginée" comprendra un next_url qui peut être utilisé pour récupérer le prochain ensemble de résultats. La récupération ultérieure de toutes les URL suivantes (tant qu'elles sont fournies dans le résultat) vous permettra d'obtenir l'ensemble complet.

En passant, vous pouvez essayer d’augmenter le paramètre count dans la demande. (En fonction de la bibliothèque Instagram que vous utilisez, de telles choses peuvent être fournies via un hachage options ou quelque chose de similaire.) Cela pourrait vous éviter quelques requêtes supplémentaires. La page que je viens de mentionner ne spécifie pas une valeur de comptage maximale cependant. Je soupçonne qu'Instagram modifie le maximum de manière dynamique, et par endpoint.

1

Vous ne pouvez pas obtenir plus de 20 publications, si vous êtes un utilisateur du bac à sable Veuillez lire sous "API BEHAVIOR" ici

1
Achira Shamal
<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

0
kenai37

En fait, il y a une chance d'obtenir les 20 images suivantes, puis les 20 suivantes et ainsi de suite ... Dans la réponse JSON, il y a un tableau "_ ​​pagination}"

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

il s'agit des informations sur l'appel spécifique de l'API et l'objet "next_url" indique l'URL pour obtenir les 20 prochaines images.

pour plus d'informations sur l'API Instagram, consultez cette page: https://medium.com/@KevinMcAlear/getting-friendly-with-instagrams-api-abe3b929bc52

0
user3632055

Vous pouvez utiliser les bibliothèques de flux Instagram comme instafeed . Il permet d'obtenir un flux de 60 images (maximum)

Par exemple: 

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

limite (nombre) - Nombre maximum d'images à ajouter. Max de 60.

0
Srikukan Ajith