Сохранен F 51
https://2ch.hk/web/res/92614.html
Прошлые домены не функционирует! Используйте адрес ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна. Подробности случившегося. Мы призываем всех неравнодушных помочь нам с восстановлением утраченного контента!

Instagram соснул со своим API

 Аноним 03/06/16 Птн 00:29:54 #1 №92614 
14649029948220.jpg
Мне кажется эта тема стоит отдельного треда.

Если кто не в теме, Instagram очень крупно поднасрал всем разработчикам, введя необходимость авторизации конкретного пользователя для использования api. Но немного попинав их сайт я обнаружил, что достаточно дописать к любой ссылке ?__a=1 и сайт выдаст вполне себе машинопонятный json.

Авторизация на сайте для этого не нужна. Данным способом можно получить любой открытый контент.

Например введя instagram.com/explore/tags/2ch/?__a=1 вы получите информация по хэштегу #2ch в json'е.

Соответственно instagram.com/abu_vip/?__a=1 - получение информации о пользователе.

В рамках этого треда предлагаю найти замену всему, что было в api инсты.

Если еще чего интересного отковыряю, буду скидывать ИТТ. Если вы найдете, то велком. Любые вопросы приветствуются.

Аноним 03/06/16 Птн 00:30:35 #2 №92615 
Бамп /?__a=1
Аноним 03/06/16 Птн 00:30:56 #3 №92616 
Бамп /?__a=2
Аноним 03/06/16 Птн 10:40:02 #4 №92638 
Бамп /?__a=3
sage[mailto:sage] Аноним 03/06/16 Птн 10:55:04 #5 №92639 
да иди на хуй отсюда со своим говном.
бампаешь, чтобы кто-то сказал какой ты охуенный? Нет, ты чмошник и API инстаграмма нахуй никому не нужно, быдло-парашник.
Аноним 03/06/16 Птн 11:33:20 #6 №92640 
>>92639
> со своим говном
А куда еще идти? На всяких хабрах не хочу палить годноту.

> чтобы кто-то сказал какой ты охуенный
Нет, одному просто влом их сайт пинать. Например там есть переменные для установки позиции, с которой догружается контент, но в некоторых случаях не понятно, откуда они берутся. Надеюсь, что тут найдутся энтузиасты, которым периодически приходится работать с Api инсты, которые помогут разобрать по частям сайт этих ублюдков.


> чмошник
> нахуй
> быдло-парашник
Осталось только про поедание говна из американских жоп добавить.
Аноним 05/06/16 Вск 06:15:57 #7 №92731 
На мой взгляд инфа относительно годная. Но без постинга смысла в ней нет (лайкинг и фолловинг уже имплементятся через веб-интерфейс).

Инстаграм пидорасы и ублюдки. Они только провоцируют больший спам своей хуйней, вместо того чтобы принимать адекватные меры (выявление поведенческих, скрытие из ленты, удаление по репортам).
Аноним 05/06/16 Вск 08:59:53 #8 №92734 
>>92639
ты чё, бичара! пиздуй статейники клепать на вп. таком же дырявом как анус твоей мамки.
Аноним 06/06/16 Пнд 01:03:57 #9 №92783 
>>92731
ОП снова тут.

Решил написать бота, в рамках этого процесса изучаю данный вопрос. Не хочу через всякие селениумы с браузером работать, это достаточно ресурсоёмко по сравнению с отправкой простых http запросов.

Для получения персонализированной информации достаточно всего лишь куки. Для совершения действий, типо лайки подписки еще нужен заголовок x-csrftoken:, в нем содержится что-то вроде хэша сессии, взять его можно из приходящих куки.
set-cookie:csrftoken={токен};

Лайки
https://www.instagram.com/web/likes/{id_поста}/{like|unlike}/

Подписки
https://www.instagram.com/web/friendships/{id_пользователя}/{follow|unfollow}/

Все это отправляется методом POST. Обязательно передать куки и x-csrftoken, желательно еще юзерагент.

Пока еще пердолюсь с логином, делается он через отправку POST запроса по адресу
https://www.instagram.com/accounts/login/ajax/
нужно передать переменные username и password, но мне возвращается ошибка 403, хотя когда все делаю через сайт даже при неправильных данных код ответа 200
Пока туплю с тем, что именно не сходится. В куки вроде ничего не меняется, в заголовках других тоже. В общем наверное то, как залогиниться в обход веб интерфейса - самая главная на данный момент проблема.
Аноним 06/06/16 Пнд 11:46:47 #10 №92795 
Кто знает почем почему прямой переход по ссылке на геолокацию 501 выбивает? https://www.instagram.com/explore/locations/637976185/
(красная площадь)
Аноним 06/06/16 Пнд 12:58:10 #11 №92797 
Разобрался. Походу инстаграм запрещает прямые переходы (с адресной строки), в отличие от переходов с сохраненных страниц(по тегам a) для геолокаций
Аноним 06/06/16 Пнд 13:13:13 #12 №92798 
>>92797
Просто некоторые вещи надо брать через https://www.instagram.com/query/

Например твоя красная площадь
https://www.instagram.com/query/?q=ig_location(637976185)+%7B+media.after(1266515888681876449%2C+12)+%7B%0A++count%2C%0A++nodes+%7B%0A++++caption%2C%0A++++code%2C%0A++++comments+%7B%0A++++++count%0A++++%7D%2C%0A++++date%2C%0A++++dimensions+%7B%0A++++++height%2C%0A++++++width%0A++++%7D%2C%0A++++display_src%2C%0A++++id%2C%0A++++is_video%2C%0A++++likes+%7B%0A++++++count%0A++++%7D%2C%0A++++owner+%7B%0A++++++id%0A++++%7D%2C%0A++++thumbnail_src%2C%0A++++video_views%0A++%7D%2C%0A++page_info%0A%7D%0A+%7D&ref=locations%3A%3Ashow

Нужно передать 2 переменные со следующими данными

q:ig_location(637976185) { media.after(1266515888681876449, 12) {
count,
nodes {
caption,
code,
comments {
count
},
date,
dimensions {
height,
width
},
display_src,
id,
is_video,
likes {
count
},
owner {
id
},
thumbnail_src,
video_views
},
page_info
}
}
ref:locations::show

POST или GET не важно
Аноним 06/06/16 Пнд 13:14:26 #13 №92799 
>>92798
Единственный момент, как взять id точки локации, над этим пока надо подумать.
Аноним 06/06/16 Пнд 14:08:08 #14 №92802 
А это уже через api можно брать, песочница позволяет
https://api.instagram.com/v1/locations/search?lat=широта&lng=Долгота&access_token=Токен
Аноним 06/06/16 Пнд 14:23:19 #15 №92804 
Разобрался, что не так было с логином

Необходимо передавать заголовок
referer: https://www.instagram.com/accounts/login/

И переменные должны быть не в адресной строке, а в теле запроса.

То есть запрос будет выглядеть следующим образом

POST /accounts/login/ajax/ HTTP/1.1
HOST: www.instagram.com
cookie: test=123; csrftoken=f6ad069f6b9c1013a52292d42c2609e0; mid=V1VV4QAEAAEHrxlXoTBPW6z-ZQ-L
referer: https://www.instagram.com/accounts/login/
user-agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.79 Safari/537.36
x-csrftoken: f6ad069f6b9c1013a52292d42c2609e0
content-length: 23

username=fgdf&password=
Аноним 06/06/16 Пнд 18:01:53 #16 №92808 
>>92804
Бро, не обижайся, но проигрываю с твоих открытий.

Ковыряю приватные API несколько лет. И хобби, и бизнес уже.
Аноним 06/06/16 Пнд 18:12:22 #17 №92809 
>>92808
Ну, мне впервые приходится с таким разбираться. И конкретно для приватного апи инстаграма я не нашел подходящего решения. С учетом недавно введенной в действие новой политики инстаграма относительно своего API для разработчиков, полагаю данный тред может быть полезен.
Аноним 15/06/16 Срд 15:32:36 #18 №93039 
>>92809
Дружэ, раз у тебя все уже поставленно на поток, то оставь пожалуйста мыло свое,спрошу про цену и заказ дам если все ок.
Аноним 15/06/16 Срд 15:33:03 #19 №93040 
>>92808
Дружэ, раз у тебя все уже поставленно на поток, то оставь пожалуйста мыло свое,спрошу про цену и заказ дам если все ок.
Аноним 17/06/16 Птн 19:08:55 #20 №93136 
>>92614 (OP)
о да, фл.ру полон мольб о помощи разрабов, которые хотят, чтобы им скриптом авторизовались.
Аноним 18/06/16 Суб 13:11:17 #21 №93163 
>>92614 (OP)
ох, няша. Где ты раньше был!
Был проект который подтягивал фотки по хэштегам. Но после изучения нового api, я сказал заказчикам что теперь ничего не получится... Сказать что они расстроили - ничего не сказать.
Аноним 19/06/16 Вск 19:28:42 #22 №93198 
Как все фотки получить?
Аноним 20/06/16 Пнд 19:27:59 #23 №93245 
>>93163
Почему не получится?
Новый API не хуже старого, во многом даже лучше.
Что тебе не вкатило?
Аноним 20/06/16 Пнд 20:41:17 #24 №93247 
>>93245
Тем, что из режима песочницы хрен выйдешь и работать можешь не более, чем с 5 аккаунтами и то с их разрешения.
Не >>93163 кун
Аноним 20/06/16 Пнд 21:50:19 #25 №93249 
Кстати, эта тема не пропадет опять через пару месяцев? Или это сам инстаграм специально оставил?
Аноним 21/06/16 Втр 17:09:51 #26 №93275 
>>92614 (OP)
Погодь, ну так в любом случае ты собираешь n первых постов, верно? То есть всё посмотреть не получится
Аноним 24/06/16 Птн 22:02:47 #27 №93425 
>>93275
Используй пагинацию. Передавай еще get параметр max_id. Значение нужно брать из "end_cursor".
Находится в media->page_info->end_cursor
Аноним 29/06/16 Срд 17:25:26 #28 №93693 
>>92614 (OP)
Не представляю, какие профиты можно с этого поиметь.
Аноним 29/06/16 Срд 20:06:21 #29 №93706 
14672199818630.jpg
Инстануб вкатился. Аноны, неужели нет скрипта для быстрого скачивания профиля инста?
Аноним 02/07/16 Суб 12:34:46 #30 №93801 
>>93245
Что ты, блядь, несешь? Я уже третий день втыкаю в эту залупу и не понимат как оно работает. Приложение создал, secret ID есть, client secret есть, иду в браузере сюда
>https://api.instagram.com/oauth/authorize/?client_id=111&redirect_uri=https://site.com/&response_type=code&scope=public_content+basic+follower_list+likes+comments+relationships
копирую access_token, вставляю в скрипт иииииииии ниииииихуя!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!111111111111111111111111111111111111111111111111111111
>OAuthAccessTokenException (400): The access_token provided is invalid
>OAuthAccessTokenException (400): The access_token provided is invalid
>OAuthAccessTokenException (400): The access_token provided is invalid
БЛЯДЬ, МНЕ ТА ПЕРДАК РАЗРЫВАЕТ ОТ ТУПОСТИ ЭТИХ ДЕГЕНЕРАТОВ. Хоть бы посмотрели как у того же вконтача сделано. Пиздец, бля, пиздец.
Аноним 04/07/16 Пнд 00:21:57 #31 №93850 
>>93163
Это ты тот, что на апворке просил token'ы достать?
Аноним 04/07/16 Пнд 07:08:32 #32 №93859 
>>92615
>>92616
>>92638
Как жаль что так нельзя получить все страницы. А вообще, есть отреверсенное приложение и приватное апи.
Аноним 04/07/16 Пнд 10:20:52 #33 №93871 
>>93859
Почему нельзя?
Аноним 04/07/16 Пнд 18:53:02 #34 №93891 
>>93871
Попробуй, убедишься что /?__a=3 отдается первая страница.
Аноним 04/07/16 Пнд 22:04:02 #35 №93895 
>>93891
а пагинацию использовать, не?
Аноним 04/07/16 Пнд 22:16:29 #36 №93896 
>>93895
А =3 что по-твоему?
Аноним 04/07/16 Пнд 23:55:27 #37 №93897 
>>93896
рукалицо
__a это флаг, который возвращает json данные.
Для пагинации читай api инстаграма и юзай так же
Аноним 05/07/16 Втр 08:04:49 #38 №93902 
>>93897
Лол, ну ок, я проебался. Все равно, проще взять готовое, хоть и на пхп, чем ебаться с пагинацией самому.и
Аноним 16/11/16 Срд 23:11:38 #39 №98041 
бамп
Аноним 16/11/16 Срд 23:28:04 #40 №98042 
Как дербанить контент с инсты через rss? Нагуглил только какую-то хуйню с миниатюрами картинок, но это не то.
Аноним 01/12/16 Чтв 13:42:22 #41 №98545 
Бамп треда. Метод постом не работает. Как выдерать инфу теперь?
Аноним 09/12/16 Птн 08:32:57 #42 №98787 
>>98545
Конкретно что не работает? Я к примеру благодаря этому коду, целый функциональный бот написал, работает чётко на локалке. Продвигаю CPA-товары.

Аноним 13/12/16 Втр 17:04:13 #43 №98893 
>>98787
Как открыть ВТОРУЮ страницу фоток? /querry/ теперь закрыт, а /?__a=1 дает только первую порцию фоток и все.
[mailto:[email protected]Аноним 13/01/17 Птн 17:00:30 #44 №99849 
>>98893
если нужно кому : для листания страниц юзайте &max_tag_id={последний_id_в_списке}
Аноним 26/01/17 Чтв 14:19:46 #45 №100205 
Господа, прошу помощи:

При формировании POST запроса на "https://www.instagram.com/web/friendships/XXXXXXX/follow/" получаю 403 Forbiden и сообщение "This page could not be loaded. If you have cookies disabled in your browser, or you are browsing in Private Mode, please try enabling cookies or turning off Private Mode, and then retrying your action".

Сам код:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://www.instagram.com/web/friendships/XXXXXXX/follow/");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "x-csrftoken=YYYYYYYYYYYYYY";

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
\t'user-agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2900.1 Iron Safari/537.36',
\t'origin:https://www.instagram.com',
\t'referer:https://www.instagram.com/',
\t'x-csrftoken:YYYYYYYYYYYYYY',
\t'x-instagram-ajax:1',
\t'x-requested-with:XMLHttpRequest'
\t)
);
curl_setopt($ch, CURLOPT_COOKIE, json_decode(file_get_contents("cookies.txt"),true));
$result = curl_exec($ch);

Если убрать CURLOPT_POSTFIELDS x-csrftoken, то получаю ошибку 400 Bad Request, если убрать curl_setopt($ch, CURLOPT_POST, 1) - то ошибку 405 Method not allowed.

Куки нормальные, файл на месте. Токен тоже нормальный, залогиненную страницу получить могу.

В чём подвох?
Аноним 27/01/17 Птн 00:01:31 #46 №100222 
>>100205
Cмари на жидхабе для твоего пхп есть либа.
Аноним 27/01/17 Птн 19:00:29 #47 №100264 
>>100222
>жидхаб
Там есть пример на питоне, да и тот использует api. А мне без него надо. И на php
Аноним 28/01/17 Суб 12:27:45 #48 №100286 
>>100205
В общем, методом тыка понял, что только при таком запросе срабатывает:

$ch = curl_init();
\t
curl_setopt($ch, CURLOPT_URL, "https://www.instagram.com/web/friendships/XXXXXXX/follow/");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "x-csrftoken=".file_get_contents("csrftoken.txt"));
\t
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
\t'Host: www.instagram.com',
\t'User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:46.0) Gecko/20100101 Firefox/46.0',
\t'Accept: /',
\t'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
\t'Accept-Encoding: gzip, deflate, br',
\t'X-CSRFToken: '.file_get_contents("csrftoken.txt"),
\t'X-Instagram-AJAX: 1',
\t'Content-Type: application/x-www-form-urlencoded',
\t'X-Requested-With: XMLHttpRequest',
\t'Referer: https://www.instagram.com/YYYYYY/following/',
\t'Cookie: '.substr(file_get_contents("cookies.txt"),1,-1), //Так как содержимое файла куки заключено в кавычки
\t'Connection: keep-alive',
\t'Pragma: no-cache',
\t'Cache-Control: no-cache',
\t'Content-Length: 0'
));
$result = curl_exec($ch);

Отдельно передавать куки как параметр не нужно. Вот так сработало.
sage[mailto:sage] Аноним 29/01/17 Вск 01:37:21 #49 №100301 
>>100286
>PHP
съеби
ракетчик 17/06/17 Суб 17:51:05 #50 №105221 
получение подписчиков через https://www.instagram.com/query/ методом POST больше не работает? как генерить query_id если запрашивать подписчиков методом GET?
Аноним 26/08/17 Суб 00:36:07 #51 №106526 
https://github.com/mgp25/Instagram-API
там же линк для питона
comments powered by Disqus

Отзывы и предложения