Pull to refresh

Comments 72

За два последних года исходный код страницы в веб-версии Instagram кардинально менялся два раза (меняли названия переменных, содержание), плюс они могут добавлять и удалять пробелы в синтаксисе по своему усмотрению.
Ну и использовать explode для получения подстроки в строке, это по меньшей мере кощунство. Можно было применить substr+strpos, preg_match, strstr.
Будем следить за этим, например, в мобильном приложении мы поддерживаем два вида постинга (отличаются расположением кнопок).

Спасибо за замечание.
О, вот это круто! Надеюсь переживет 1 июня, добавим как альтернативу
Ага, я уже залил изменения, но до релиза еще надо дописать один метод и все оттестить
Наверное это не совсем то, что нужно, это данные по location_id
Я вот пробовал подставлять /locations/search/?__a=1&lat=48.858844&lng=2.294351 вариации вот таких вещей, но не сработало)
Спасибо. как понимаю location id из фэйсбука берется. И referer не указывал, вернулся не пустой JSON
а что по скорости работы в отличии от API?
Не замеряли даже, нам главное было данные получить
Я наверное нехороший буратино, но я бы наверное пошёл по пути разбора официального приложения и дёргания их API с их ключами. Собственно, мало чем отличается, только так есть хотя бы документированный API.
Тогда вам придется сначала указать логин и пароль, насколько я понимаю.
Вот, кстати, живой проект по этой теме https://github.com/mgp25/Instagram-API
А вы постите действительно реальными устройствами или все же через эмулятор? И, кстати, почему №1 вы для постинга?) Никогда не слышал про вас.
Да, действительно с реальных устройств, вот видео-пруф: https://www.youtube.com/watch?v=CsJKb4RX-jo
Эмуляторы не используем, но со счетов их не скидываем.

Парень, который занимался PR предложил так написать =D Когда разбирались в теме, мы нашли только одну компанию, которая заявила, что использует настоящие устройства schedugr.am, но подтверждение их слов мы не видели. Остальные сервисы пользуются приватным API.

Кажется о нас вообще мало кто слышал, потому что рекламой мы активно не занимаемся пока.
Максимально доступное качество фото можно получить, удалив все кроме /t/ из ссылки — https://scontent.cdninstagram.com/t/12950481_1753078061593396_874826488_n.jpg, через параметры в ссылке можно управлять размером и кропом.

или вот так: https://instagram.com/p/9BDXa_L7bm/media/?size=l

Лента залогиненного пользователя в JSON: https://www.instagram.com/?__a=1
Без сессии ответ будет пустой {}
Зарепортили баг с пагинацией по хештегам

В коде библиотеки пагинация сделана через передачу параметра max_id.
И сейчас он не работает, то есть первая пачка медиа есть, но следующая возвращается с пустым массивом.
На сколько я понял параметр max_id, то работает, то не работает. Не знаете стабильный способ?
вроде с tag.media.page_info.end_cursor в качестве max_id что-то меняется в фиде, пока не разбирался
С тегами не проверял, но про страницу геолокации (https://www.instagram.com/explore/locations/278324317/) точно могу сказать, что фид меняется и в случае использования start_cursor, в случае использования end_cursor. Причем если смотреть на время картинок, то всегда выдаются более поздние картинки (и при start_cursor, и при end_cursor)
Перепутал — выдаются более ранние картинки
А вы не знаете как получить из user_id username?
Знаю только способы с использованием приватного или официального апи
Хотя… Если для каждого пользователя хранить какую-либо картинку (идентификатор картинки), то получив информацию о картинке, можно узнать новое имя пользователя
Можно сразу сохранять user.media.nodes[0].code из https://www.instagram.com/username/?__a=1
Странно, но сейчас max_id=mediaId работает опять и в тоже время max_id=end_cursor тоже работает
https://www.instagram.com/explore/tags/test/?__a=1 перестал работать (
Если вы на PHP, то я выпустил обновление
Круто!
А как управлять размером и кропом через параметры?

Если не секрет, каким способом находятся такие ссылки?

Обязательно добавим это в библиотеку.
у меня популярное приложение на instagram api и я озадачился этим вопросом достаточно давно. нашел перебором параметров и изучением скриптов.
управление кропом описано тут
за год — не менялось, скорее всего эти ендпоинты активно используются различными сервисами-партнерами и менять их достаточно сложно
Это хороший конечно способ, но может быть у нас уже появился рынок верифицированных клиентов, или хотя-бы access_token?
Интересно. Я о таком не знаю.

Плюс зависеть от чужого токена не оч приятно. Кстати, как-то я искал на github рабочие клиенты/токены как-то давно и находил рабочие
Передо мной тоже была цель вытянуть несколько фотографий, так как с начала месяца старые скрипты рухнули. И казалось бы https://www.instagram.com/username/media/ прекрасно отдает данные json. Но ведь ajax'ом нельзя вытянуть данные на моем домене с домена инстаграма. Ок, берем dataType: jsonP. Не работает. Все же результат json <> jsonp
//JSON
{"name":"stackoverflow","id":5}
//JSONP
func({"name":"stackoverflow","id":5});

Нагуглил решение прогонять запрос через сторонний сервис: http://www.whateverorigin.org/
Получилось типа того: http://jsfiddle.net/VpGVL/
Кто-нибудь нашел как получить все комментарии к посту, а не только 40 последних?

пока вообще не пробовал работать с комментариями
Получилось получить все комментарии из любого media, в последнем релизе библиотеки теперь доступно: https://github.com/raiym/instagram-php-scraper
Тестил на 8 000 комменатриев.

Вот этими двумя url можно сделать пагинацию:

https://www.instagram.com/query/?q=ig_shortcode(BG3Iz-No1IZ){comments.last(300){count,nodes{id,created_at,text,user{id,profile_pic_url,username,follows{count},followed_by{count},biography,full_name,media{count},is_private,external_url,is_verified}},page_info}}

https://www.instagram.com/query/?q=ig_shortcode(BG3Iz-No1IZ){comments.before(17856915757025183,300){count,nodes{id,created_at,text,user{id,profile_pic_url,username,follows{count},followed_by{count},biography,full_name,media{count},is_private,external_url,is_verified}},page_info}}
Как можно получить все фотографии из любого media?
Что вы имеете ввиду под медиа?
Media это фото или видео
Закомитил сегодня эту возможность. Вот так можно получить

https://www.instagram.com/query/?q=ig_user(3){id,username,external_url,full_name,profile_pic_url,biography,followed_by{count},follows{count},media{count},is_private,is_verified}
Может кто-нибудь знает как достать все лайки у фото/видео?
https://www.instagram.com/p/%post_is%/?__a=1
{media{likes{nodes}}}
Не оно?
А как сделать, например, пагинацию? Чтобы получить все лайки. Насколько я понял нужно залогиниться, без этого нельзя.
Логиниться не обязательно, но как сделать пагинацию меня тоже интересует, потому что показывает только 10 лайкнувших.
А вы не поняли как получить все лайки?
Ну вот я пока что использую эту библиотеку.
Как получить все ссылки на изображения по хештегу? Библиотека умеет такое?
И с авторизацией больше данных отдаётся через параметр "?__a=1". Удалось как-нибудь прикрутить авторизацию?
Получать данные по хештегу Instagram::getMediasByTag('zara', 30);

По поводу авторизации — ее не будет (в ближайшем будущем). проект для получения только публичных данных

вот есть другой: https://github.com/mgp25/Instagram-API
Авторизацию пришлось добавить, так как инстаграм требует ее для получения фоток по тегу и локации
Не нашел не в исходниках, не в описании, как получить список подписчиков. Я вижу кол-во, но мне нужен конкретный список.
Альтернатива метода
/self/follows
В библиотеке пока нет такой возможности, но технически сделать можно.
Да, буду рад, видеть вас в котрибьюторах)
А если серьезно, то пока такую функциональность никто не имплементировал
Ну будьте первым) Как вас замативировать)
Ну вот параметр '?__a=1' отключили… что будете делать?
Sign up to leave a comment.

Articles