Проходим авторизацию в вконтакте
Вот и пришло время, когда мне понадобилось авторизоваться в этой социальной сети. На мое удивление, статей в Интернете было не мало. Даже множество из них были на PHP. Отлично! как раз то, что мне нужно. Но внимательно их прочитав, я понял, что те методы авторизации, которые там описывались либо устарели или не работают совсем правильно. Правда попадались и рабочие примеры (если судить по отзывам). Но все таки захотелось мне написать все с чистого листа, да и к тому же я в свое время написал класс, в который объединил самые часто используемые функции, наверное, самой лучшей библиотеки что я встречал для работы с различными сетевыми протоколами – cURL. На вооружение был принят firebug. Как же без него в таких ситуациях.Ну что понеслась! Вот собственно код с подробными комментариями.
// Подключаем класс curl require_once ('curl.class.php'); // Данные для входа $email = "ваш емейл"; $password = "ваш пароль"; // Создаем объект curl $curl = new curl; // Инициализируем curl $curl->init(); // Устанавливаем USER_AGENT $curl->set_useragent("Mozilla/5.0 Gecko/20101203 Firefox/3.6.1"); // Обрабатываем заголовок Location $curl->set_followlocation(1); // Запрещаем вывод данных в браузер $curl->set_returntransfer(1); // Устанавливаем ссылку для первого захода $curl->set_url('http://vk.com/'); // Нам необходимо вывести заголовки, // поэтому устанавливаем единицу для вывода головы документа $curl->set_header(1); // Получаем тело документа и одновременно устанавливаем cookies $curl->set_cookie($curl->exec()); // POST запрос будем передавать по этой ссылке $curl->set_url('http://login.vk.com/?act=login'); // Собственно сам POST запрос $curl->set_post("act=login&act=login&al_frame=1&captcha_key=&captcha_sid=& email=$email&expire=&from_host=vkontakte.ru&pass=$password&q=1"); // Получаем тело документа и одновременно устанавливаем cookies $curl->set_cookie($curl->exec()); // Указываем реферера $curl->set_referer('http://login.vk.com/?act=login'); // Устанавливаем конечную ссылку $curl->set_url('http://vk.com/login.php?'); // Отключаем вывод головы документа $curl->set_header(0); // Вополняем echo $curl->exec(); $curl->close();
Вы можете скачать полный исходник. Класс cURL прилагается.
Сергей
07.10.2013 @ 10:11 пп
Здравствуйте. Спасибо за статью. Но у меня такая проблема когда я запускаю скрипт я получаю страничку где я авторизован но я остаюсь на localhoste поэтому я не могу идти дальше по ссылка как мне сделать чтобы я при активации скрипта был авторизован непосредственно на вконтакте.
admin
08.10.2013 @ 12:07 дп
Добрый вечер!
Какая-то странная у вас ситуация. Как вы можете получиться страницу, оставаясь на localhost?