Получить все фотографии из Instagram, которые имеют определенный хэштег с PHP [закрыто]

Мне нужно получить несколько картинок, которые имеют определенный хэштег с использованием PHP? Любая помощь будет офигенной или намекнет?

Ответы на вопрос(6)

чтобы сделать любые (даже такие, как & quot; получить несколько картинок с определенным хэштегом & quot;). Увидетьжурнал изменений платформы Instagram:

Apps created on or after Nov 17, 2015: All API endpoints require a valid access_token. Apps created before Nov 17, 2015: Unaffected by new API behavior until June 1, 2016.

теперь все ответы, приведенные здесь до 1 июня 2016 года, больше не нужны.

 26 авг. 2017 г., 07:25
Как я могу получать сообщения, используя различные хэштеги в моем приложении для Android?
 21 нояб. 2016 г., 13:57
но вы можете получить & quot; получить несколько фотографий с определенным хэштегом & quot;without the need of an API
 07 авг. 2017 г., 11:37
2017, и я все еще могу получить данные без токена доступа. Пример:instagram.com/salvun/media

вы можете использовать кнопку «загрузить больше».

index.php

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8" />
  <title>Instagram more button example</title>
  <!--
    Instagram PHP API class @ Github
    https://github.com/cosenary/Instagram-PHP-API
  -->
  <style>
    article, aside, figure, footer, header, hgroup, 
    menu, nav, section { display: block; }
    ul {
      width: 950px;
    }
    ul > li {
      float: left;
      list-style: none;
      padding: 4px;
    }
    #more {
      bottom: 8px;
      margin-left: 80px;
      position: fixed;
      font-size: 13px;
      font-weight: 700;
      line-height: 20px;
    }
  </style>
  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  <script>
    $(document).ready(function() {
      $('#more').click(function() {
        var tag   = $(this).data('tag'),
            maxid = $(this).data('maxid');

        $.ajax({
          type: 'GET',
          url: 'ajax.php',
          data: {
            tag: tag,
            max_id: maxid
          },
          dataType: 'json',
          cache: false,
          success: function(data) {
            // Output data
            $.each(data.images, function(i, src) {
              $('ul#photos').append('<li><img src="' + src + '"></li>');
            });

            // Store new maxid
            $('#more').data('maxid', data.next_id);
          }
        });
      });
    });
  </script>
</head>
<body>

<?php
  /**
   * Instagram PHP API
   */

   require_once 'instagram.class.php';

    // Initialize class with client_id
    // Register at http://instagram.com/developer/ and replace client_id with your own
    $instagram = new Instagram('ENTER CLIENT ID HERE');

    // Get latest photos according to geolocation for Växjö
    // $geo = $instagram->searchMedia(56.8770413, 14.8092744);

    $tag = 'sweden';

    // Get recently tagged media
    $media = $instagram->getTagMedia($tag);

    // Display first results in a <ul>
    echo '<ul id="photos">';

    foreach ($media->data as $data) 
    {
        echo '<li><img src="'.$data->images->thumbnail->url.'"></li>';
    }
    echo '</ul>';

    // Show 'load more' button
    echo '<br><button id="more" data-maxid="'.$media->pagination->next_max_id.'" data-tag="'.$tag.'">Load more ...</button>';
?>

</body>
</html>

ajax.php

<?php
    /**
     * Instagram PHP API
     */

     require_once 'instagram.class.php';

      // Initialize class for public requests
      $instagram = new Instagram('ENTER CLIENT ID HERE');

      // Receive AJAX request and create call object
      $tag = $_GET['tag'];
      $maxID = $_GET['max_id'];
      $clientID = $instagram->getApiKey();

      $call = new stdClass;
      $call->pagination->next_max_id = $maxID;
      $call->pagination->next_url = "https://api.instagram.com/v1/tags/{$tag}/media/recent?client_id={$clientID}&max_tag_id={$maxID}";

      // Receive new data
      $media = $instagram->getTagMedia($tag,$auth=false,array('max_tag_id'=>$maxID));

      // Collect everything for json output
      $images = array();
      foreach ($media->data as $data) {
        $images[] = $data->images->thumbnail->url;
      }

      echo json_encode(array(
        'next_id' => $media->pagination->next_max_id,
        'images'  => $images
      ));
?>

instagram.class.php

Найдите функцию getTagMedia () и замените на:

public function getTagMedia($name, $auth=false, $params=null) {
    return $this->_makeCall('tags/' . $name . '/media/recent', $auth, $params);
}
 05 июл. 2013 г., 16:07
Кажется, кому-то еще удалось ответить быстрее, поэтому я думаю, что это решено.
 09 мар. 2014 г., 14:23
Не нужно взламывать ядро. Вместо редактирования instagram.class.php просто установите$instagram->setClientID('YOUR_CLIENT_ID');
 06 июл. 2013 г., 17:31
Да, видимо Спасибо, в любом случае!
 02 авг. 2013 г., 01:00
Именно то, что я искал! Спасибо Kexxcream. Осталась одна проблема. Количество отображаемых картинок постоянно меняется с 13 на 18. Как это исправить? И между прочим, это странно, размер изображения не одинаков. Иногда я вижу не квадратные изображения! Но хороший сценарий! Любить это! Спасибо kexxcream
 05 июл. 2013 г., 12:56
Это прекрасно работает! +1 Если бы у вас не было времени, не могли бы вы взглянуть на ту же проблему, что и у меня?stackoverflow.com/questions/17487231/…

то не нужно включать класс-оболочку «instagram.class.php». Как СМИ & amp; Конечные точки тегов в Instagram API не требуют аутентификации. Вы можете использовать следующую функцию на основе скручивания, чтобы получить результаты, основанные на вашем теге.

 function callInstagram($url)
    {
    $ch = curl_init();
    curl_setopt_array($ch, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_SSL_VERIFYHOST => 2
    ));

    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
    }

    $tag = 'YOUR_TAG_HERE';
    $client_id = "YOUR_CLIENT_ID";
    $url = 'https://api.instagram.com/v1/tags/'.$tag.'/media/recent?client_id='.$client_id;

    $inst_stream = callInstagram($url);
    $results = json_decode($inst_stream, true);

    //Now parse through the $results array to display your results... 
    foreach($results['data'] as $item){
        $image_link = $item['images']['low_resolution']['url'];
        echo '<img src="'.$image_link.'" />';
    }
 03 янв. 2016 г., 10:32
 28 авг. 2017 г., 08:43
Как я могу получать сообщения из Instagram в моем приложении для Android, используя различные хэштеги?
 05 янв. 2016 г., 12:30
но вы действительно видите все изображения? Я нахожусь в режиме песочницы, я могу видеть только изображения владельца accesstoken-владельца?
 24 окт. 2014 г., 10:12
Это последние 20. Если вы посмотрите на URL, у него есть «media / недавний». В соответствии с Instagram API, это будет порядок по дате убыванию.
 22 окт. 2014 г., 20:10
Я заметил, что он захватывает только 20 фотографий. Это 20 последних картинок? Как получить больше?

<?php       
    // Get class for Instagram
    // More examples here: https://github.com/cosenary/Instagram-PHP-API
    require_once 'instagram.class.php';

    // Initialize class with client_id
    // Register at http://instagram.com/developer/ and replace client_id with your own
    $instagram = new Instagram('CLIENT_ID_HERE');

    // Set keyword for #hashtag
    $tag = 'KEYWORD HERE';

    // Get latest photos according to #hashtag keyword
    $media = $instagram->getTagMedia($tag);

    // Set number of photos to show
    $limit = 5;

    // Set height and width for photos
    $size = '100';

    // Show results
    // Using for loop will cause error if there are less photos than the limit
    foreach(array_slice($media->data, 0, $limit) as $data)
    {
        // Show photo
        echo '<p><img src="'.$data->images->thumbnail->url.'" height="'.$size.'" width="'.$size.'" alt="SOME TEXT HERE"></p>';
    }
?>
 20 мая 2013 г., 15:52
@ Staysee Смотрите ответ ниже.
 14 мая 2013 г., 17:28
Знаете ли вы какой-нибудь способ преодолеть лимит в 20?
 22 июн. 2013 г., 14:18
@kexxcream прости за это! Выяснилось, что у пользователей были личные профили, и поэтому я не мог получить фотографии! :)
 20 июн. 2013 г., 20:04
@kexxcream Я использую ваш API и хочу получить TagMedia для хэштега #thesouthfarm. Проблема в том, что я получаю только свои собственные изображения с этим тегом. Не мои друзья. Есть ли какие-то ограничения там?
 29 мая 2016 г., 10:11
В последней версии оболочки Instagram-PHP-API вам нужно передать ограничение методу getTagMedia ():$instagram->getTagMedia($tag, 5); а затем заменить строку foreach наforeach($media->data as $data) {, (Кроме того, самый простой способ загрузить обертку теперь с помощьюComposer - см. примеры на странице Github обертки)

который может помочь в случае, если вы хотите получить доступ к изображениям в Instagram без API на основе хэштега

PHP-код для Instagram хэштегом изображений

 11 апр. 2018 г., 16:08
Это отличная работа @MaximMazurok
 11 апр. 2018 г., 00:16
Потрясающие! Это то, что мне было нужно.
 11 апр. 2018 г., 00:36
Просто напишите суть этого кода, переписанного в NodeJS (ES6):gist.github.com/Maxim-Mazurok/404755f94091ab748f257309779c134b
Решение Вопроса

который может помочь вам в этом.

 19 февр. 2014 г., 22:48
Первый URL кажется неработающим. Этот работает:instagram.com/developer/endpoints/tags
 20 февр. 2014 г., 04:36
@Shahar Обновление, спасибо.
 21 окт. 2014 г., 02:07
API Instagram просто появляетсяinsane, Действительно ли они ожидают, что вы получите аутентификацию от каждого посетителя просто для того, чтобы получить общедоступный канал?
 10 мар. 2017 г., 10:44
@SimonEast Смысл в том, что вы вообще не используете API для этих целей. Они хотят, чтобы вы питались экосистемой, а не вытаскивали из нее контент.
 05 дек. 2014 г., 00:20
Вам не нужно аутентифицировать пользователей для таких запросов. Ваш идентификатор клиента будет достаточно. Ваше приложение будет нуждаться в аутентификации пользователя, если оно делает что-то от имени пользователя. (комментирование, лайки, просмотр ленты пользователя и т. д.).

Ваш ответ на вопрос