Задать вопрос
@Nubzilo
Изучаю C#

Авторизация Instagram без API?

Добрый день. В связи с тем, что instagram теперь дает разрешения на post и delete в своем апи только проверенным приложением возник вопрос - как теперь с ним работать?
Вопросы возникли даже на этапе логина. Не могу понять как происходит логин. Все, что приходит на ум - это использовать что то вроде Phantomjs и просто заполнять/кликать нужные поля и работать с результатом. Но если придется работать не с одним пользователем, а с несколькими (в пределах одного приложения)?
У кого есть мысли - подскажите, пожалуйста. Так же был бы очень интересен код авторизации.
  • Вопрос задан
  • 5553 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 1
@slavabars
Веб программист
Отправляешь пост запрос вида username=ИМЯ&password=ПАРОЛЬ на https://instagram.com/accounts/login/ajax/ и сохраняешь куки. С этими куками ходишь по сайту.

function curl_file($url, $cookie = 'coockie', $post = '', $xhr = '') {
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
	curl_setopt($ch, CURLOPT_HEADER, true);
	curl_setopt($ch, CURLOPT_TIMEOUT, 60);
	curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie);
	curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie);
	curl_setopt($ch, CURLOPT_REFERER, $url);
	curl_setopt($ch, CURLOPT_AUTOREFERER, true);
	if ($post) {
		curl_setopt($ch, CURLOPT_POST, true);
		curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
	}
	if ($xhr) {
		preg_match('|csrftoken(.*)|', file_get_contents('coockie'), $csrf);
		curl_setopt($ch, CURLOPT_HTTPHEADER, array('X-CSRFToken:' . trim($csrf[1]), 'X-Instagram-AJAX:1', 'X-Requested-With:XMLHttpRequest'));
	}
	$file = curl_exec($ch);
	curl_close($ch);
	return $file;
}

curl_file('https://instagram.com/accounts/login/ajax/', 'coockie', 'username=Имя&password=Пароль', 1);
echo curl_file('https://instagram.com/', 'coockie', 0, 1); //Выйдет твоя страничка


Ну а далее гуляем с куками по сайту
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы