Получение более 150 комментариев Instagram

Проблема

Я хотел бы иметь возможность просматривать все комментарии по любой части Instagram, даже если у СМИ более 150 комментариев. На данный момент невозможно просмотреть больше, чем последние 20 комментариев на каком-то носителе на сайте Instagram, и если вы используете либо консоль API Instagram API, либо Библиотеки API Instagram, последние 150 комментариев возвращаются без параметров для разбивки на страницы или просмотра комментариев к комментариям.

Что я пробовал

Сначала я, конечно же, попробовал документированный комментарий комментариев к мультимедиа как в предоставленной консоли, так и в моей собственной среде. В обоих случаях было возвращено не более 150 комментариев. В тупике я начал искать дополнительную информацию в Интернете.

Прочитав Документацию по API-диаграмме, протестировал различные конечные точки в консоли API-интерфейс Instagram и прочитайте различные вопросы StackOverflow в теге Instagram и API-интерфейс API-интерфейсов Instagram на нескольких страницах Instagram, я задавался вопросом, есть ли вероятность того, что что-то недокументировано, что я мог бы попробовать.

Документация user recent media endpoint содержит параметры для max_id и max_timestamp, которые позволяют осуществлять подкачку через самые последние носители для любого данного пользователя путем извлечения носителя который предшествует указанному max_id или max_timestamp. Поскольку каждый комментарий поставляется с атрибутами created_time и id, я попытался добавить параметры для max_id и max_timestamp (как самостоятельно, так и вместе) для различных идентификаторов комментариев и временных меток при попытке выполнить запись через комментарии. Ни одна из моих попыток не работала.

Я сейчас застопорился, если у кого-то другое предложение.

Конкретный пример

Используя API-интерфейс Instagram API, я предпринял следующие шаги, пытаясь получить все комментарии для этой фотографии.

  • Аутентифицировал себя для токена OAuth2
  • Откроется поисковый запрос пользователя для coltonlhaynes, чтобы получить пользователя id: 9610843
  • Откроется недавний медиа-запрос пользователя для идентификатора пользователя: 9610843, чтобы получить последние медиафайлы
  • Собранная информация о последних средствах массовой информации (вышеуказанная связанная фотография)
    • media id: 698057751201132903_9610843
    • комментарий count: 1375
  • Отредактируйте запрос комментариев к медиа для идентификатора мультимедиа: 698057751201132903_9610843, чтобы получить последние комментарии
  • Собранная информация о последних комментариях
    • created time: 1397460230
    • комментарий id: 698269477955776593
  • Отредактируйте запрос комментариев к мультимедиа для идентификатора мультимедиа: 698057751201132903_9610843 со следующими дополнительными строками параметров запроса при попытке выполнить просмотр через комментарии, но получил те же результаты, что и шаг № 6
    • ?max_timestamp=1397460230
    • ?max_id=698269477955776593
    • ?max_timestamp=1397460230&max_id=698269477955776593
    • ?max_id=698269477955776593&max_timestamp=1397460230

Обратите внимание

Насколько мне известно, решения этой проблемы нет, но поскольку команда разработчиков Instagram заявила, что они больше не будут контролировать группу Google и будут вместо этого отслеживая StackOverflow, я помещаю это здесь.

Ответ 1

Хорошо, это будет очень "хакерское" решение, и я в настоящее время не настроен на это сам (из-за отсутствия ADSL дома), но я могу дать пошаговое руководство о том, как я буду обращаться этот вопрос.

Прежде всего вам понадобится инструмент под названием Прокси-сервер для веб-браузера Charles

На сайте есть руководство по включению "отладки SSL" в charles (для чего вам потребуется установить новый "корневой сертификат" на вашем мобильном устройстве, чтобы обмануть его, полагая, что транзакции https, подписанные charles фактически подписаны instagram.com)

Теперь установите мобильное устройство для маршрутизации всех запросов через указанный прокси (который должен быть установлен в локальной сети wi-fi.)

перейдите в https://www.google.com и убедитесь, что charles регистрирует оба запроса и ответы.

Как только все будет правильно настроено, вы можете взглянуть на вызовы API, которые приложение самой instagram использует для создания указанных страниц комментариев.

Ответ 2

Общий ответ здесь " нет, это невозможно через обычные конечные точки".

Обновлена ​​Instagram Ограничения по скорости (после 17 ноября 2015 г.). Все ограничения по скорости на платформе Instagram контролируются отдельно для каждого токена доступа и на скользящем 1-часовом окне. Живые приложения имеют более высокие пределы скорости, чем приложения в режиме Sandbox.

В каком состоянии следующие ограничения в глобальном контексте:

Ограничения глобальной скорости

Глобальные лимиты ставок применяются, включая все вызовы API, сделанные приложение на токен доступа через 1-часовое скользящее окно, независимо от конкретной конечной точки. Пределы ставок также применяются к недействительным или некорректным запросы.

  • Песочница ПРЕДУПРЕЖДЕНИЕ: 500/час
  • Live ПРЕДУПРЕЖДЕНИЕ: 5000/час

Плюс отдельно ограничения для конечных точек комментариев:

Ограничения по предельным значениям конечной точки

Конечные точки, используемые для публикации (POST или DELETE), имеют ограничения скорости, применяемые на основе каждой точки. Любые вызовы, сделанные этими конечными точками вашим OAuth Client, также рассчитывается в соответствии с указанными выше глобальными ограничениями.

  • Песочница/media/media-id/ комментарии: 30/час
  • Live/media/media-id/ комментарии: 60/час

Если ваше приложение превышает любой из этих ограничений скорости, вы получите ответ с кодом ответа HTTP 429 (Too Many Requests).

Как только платформа Instagram контролирует ее на основе access token, вы можете достичь больших ограничений, используя многопоточность с несколькими токенами доступа. Но он имеет оговорки: 1. не все можно было бы сопоставить с несколькими токенами доступа, поскольку контекст будет другим. 2. Это может противоречить Политика платформы и TOS

Ответ 3

Это вовсе не "хакерство".

Как Instagram дает ссылку, в которой вы можете получить все комментарии здесь: https://instagram.com/developer/endpoints/comments/

Все, что вам нужно сделать, это Looping по ссылке, которую дает Instagram. Я сделал это так. Я использую Api, чтобы сделать это таким образом.

  public function getUserMediaComments($id, $limit = 0) {
    return $this->_makeCall('media/'.$id.'/comments', true, array('count' => $limit));
  }

Идентификатор $id является значком media_id. Если вы заработаете над этой функцией с идентификатором изображения, вы получите все комментарии.

Это было не так сложно, когда я узнал об этом.

Вы также могли бы сделать это так, пока он прокладывал над ним.

$comments = json_decode(file_get_contents('https://api.instagram.com/v1/' . 'media/'. $image->id . '/comments?access_token='. $data->access_token));

Он возвращает вам массив комментариев изображения.

Ответ 4

Моя подруга бусит картинки и продает их через Instagram. Я узнал об этом, находясь в декретном отпуске, но сначала это было просто хобби. И затем она предложила, что если вы раскроете свой аккаунт здесь через http://buyinstagramfollowers-cheap.com/, она купит аккаунты в Instagram. Сейчас у нее так много последователей, что некоторые из них даже делают заказы, поэтому она действительно много зарабатывает. Так что я знаю о таких вещах не понаслышке, очень жаль, что я сам пока не могу сделать ничего подобного.