Vkontakte в очередной раз сменил авторизацию. И старый код, который я выкладывал уже не пригоден. Поскольку кой какие задачи у нескольких клиентов решаются при помощи моего php скрипта авторизации, пришлось править. В связи с плановым переходом на vk.com я решил авторизовываться на этот раз не через мобильную версию сайта, а уже через главную страницу.
Ничего нового. Отправляем логин пасс на сервер vk.com используя curl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
$aPost = array( //POST 'email' => _VkUser, 'pass' => _VkPwd, 'act' => 'login', 'q' => '', 'al_frame' => '1', 'expire' => '', 'captcha_sid' => '', 'captcha_key' => '', 'from_host' => 'vkontakte.ru' ); $su = 'http://login.vk.com/?act=login'; $suRef = 'http://vkontakte.ru/'; $s = Browser($su, $suRef, $aPost); |
Вконтакт вернет нам страницу, на которой javascript устанавливает куку и затем редиректит на главную. Все что нам в этот раз нужно, это выцепить параметр remixsid. Его мы получаем используя магию регулярных выражений php, далее останется только отправить remixsid
1 2 3 4 5 6 7 8 9 10 11 12 |
/* кусок кода из вконтактика в котором javascript должен поставить куку и сделать редирект * setCookieEx('sid', '4da8e50b02efdfd04602f78190cd290d51ff1b6277b10615188dce9d6a61', 1); parent.onLoginDone('/id77777777'); </script> */ $sPreg = "~[a-z\d]{60}~s"; preg_match($sPreg, $s, $a0); if(!empty($a0[0])){ BrowserCookieSave(array('remixsid'=>$a0[0])); } $s = Browser('http://vkontakte.ru'); |
В этот раз выкладываю полностью вместе со своей библиотекой оберткой к curl, используйте на свой страх и риск.
Скрипт авторизации Vkontakte (7zip)
Свежие комментарии