Отображение более 20 фотографий в API-интерфейсе instagram - программирование
Подтвердить что ты не робот

Отображение более 20 фотографий в API-интерфейсе instagram

Я занимаюсь некоторыми исследованиями и пытаюсь понять, как отображать более 20 изображений, которые выводятся из instram 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>
4b9b3361

Ответ 2

Любое приложение, созданное до 17 ноября 2015 года, продолжит функционировать до июня 2016 года. После июня 2016 года приложение будет автоматически перемещено в режим Sandbox, если оно не было одобрено в процессе обзора.
Режим Sandbox - это реальные данные Instagram (т.е. То, что обычно отображается в приложении Instagram), но со следующими условиями:

  • Приложения в песочнице ограничены 10 пользователями.
  • Данные ограничены 10 пользователями и 20 последними средами от каждого из этих пользователей
  • Снижение пределов скорости API

подробнее

Ответ 3

Попробуйте добавить &count=N к запросу, где N - количество желаемых результатов.

Ответ 4

Попробуйте этот код

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

Ответ 5

См. http://instagram.com/developer/endpoints/. Он детализирует общие признаки конечных точек, также перечисляя атрибуты разбиения на страницы. Короче говоря, ответ "с разбивкой по страницам" будет содержать next_url, который может быть использован для получения следующего набора результатов. Последующее извлечение всех следующих URL-адресов (если они указаны в результате) предоставит вам полный набор.

Кстати, вы можете попытаться увеличить параметр count в запросе. (В зависимости от используемой вами библиотеки Instagram такие вещи могут предоставляться с помощью хэша options или что-то подобное.) Это может сэкономить вам несколько дополнительных запросов. На странице, о которой я только что говорил, не указано максимальное значение счета. Я подозреваю, что Instagram меняет максимум динамически и на конечную точку.

Ответ 6

Вы можете получить более 20 элементов, указав параметр count и установите его на нужный номер.

Однако Instagram также налагает недокументированный лимит в 33 для каждого сделанного вами запроса, поэтому вам нужно будет разбивать страницы, если вы получите более 33.

Однако я написал Instafetch, который поможет вам разбивать страницы, он даже фильтрует медиатеки для вас, Поэтому не стесняйтесь использовать его!

Ответ 7

Вы не можете получить более 20 сообщений, если вы являетесь пользователем песочницы прочитайте в разделе "API BEHAVIOR" здесь

Ответ 8

Собственно, есть шанс получить следующие 20 картин, а после этого следующие 20 и так далее... В ответ JSON есть массив < 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"
 }

это информация о конкретном вызове API, а объект " next_url" показывает URL-адрес, чтобы получить следующие 20 снимков, поэтому просто возьмите этот URL-адрес и вызовите его для следующих 20 изображений...

для получения дополнительной информации о API Instagram проверьте это: https://medium.com/@KevinMcAlear/getting-friendly-with-instagrams-api-abe3b929bc52

Ответ 9

Вы можете использовать библиотеки каналов 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.