Вот старая авторизация, скорее всего не работает: PHP: <?php $mail=''; //e-mail или логин от контакта $pass=''; //пароль от контакта $res=file_get_contents('http://vkontakte.ru/login.php?layout=iphone&app=8&url=%2F%3Fact%3Dauth'); preg_match("/app_hash\" value=\"(.*?)\"/", $res, $app_hash); $res=file_get_contents('http://login.vk.com/?act=login&expire=1&app=8&app_hash='.$app_hash[1].'&vk=&auth_url=http%3A%2F%2Fi.vkontakte.ru%2F%3Fact%3Dauth&captcha_sid=&email='.urlencode($mail).'&pass='.urlencode($pass).'&captcha_key=&permanent='); preg_match("/value=\'(.*?)\'/",$res,$sid); preg_match("/app_hash\" value=\"(.*?)\"/", $res, $app_hash); $ch=curl_init("http://vkontakte.ru/login.php"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "s=$sid[1]&act=auth_result&m=4&permanent=&expire=1&app=8&app_hash=$app_hash[1]"); curl_setopt($ch, CURLOPT_COOKIE,"remixsid=$sid[1]"); $res=curl_exec($ch); curl_close($ch); preg_match("/mid\":([0-9]+),\"sid\":\"(.*?)\",\"secret\":\"(.*?)\",\"expire\":([0-9]+),\"auth_hash\":\"(.*?)\"/",$res,$string); //теперь шлем запрос на апи. $res=file_get_contents('http://api.vkontakte.ru/api.php?api_id=8&method=pages.getTitles&gid=100500&v=3.0&sig='.md5($string[1].'api_id=8gid=100500method=pages.getTitlesv=3.0'.$string[3]).'&sid='.$string[2]); ?>
Да, тема актуальна... Делаю так: PHP: preg_match('#app_hash" value="(.*)"#Uis',$html,$app_hash); preg_match('#ip_h" value="(.*)"#Uis',$html,$ip_h); $html = curl('https://login.vk.com/',array( "act"=>"login", "expire"=>"1", "app"=>8, "app_hash"=>$app_hash[1], "al_test" => 7, "_origin" => "", "ip_h" => $app_hash[1], "email" => "", "pass" => "", "permanent" => 1, )); if(preg_match("#Location:(.*)Vary:#Uis",$html['header'],$send)){ $result = curl(str_replace('\n',"",trim($send[1]))); ... авторизация проходит, но не могу отловить миды и прочую херню. Подскажите как решили вопрос?
толку от античата похоже вообще не стало... пишу, что камнем в воздух, - ноль эмоций... с такими темпами скоро путевых разработчиков не станет, все будут сидеть без опенсосев закрысив код и покупать друг у друга кусочки...
вы асолютно неправы, античатовцы тоже люди и тоже не могут знать всё, вопрос из тех что задал ТС не имет ответа в одно предложение, то что надо автору стоит немало личного времени и усилий, так что пусть или ждёт пока не придёт тот кто раньше интиресовался этим вопросом и не выложит код или нанимает кодера.
Да и не нужно знать всё... Вопрос входа в vk - это не чтение ассемблеровского кода. Я дам всем готовый код, объясните только как отловить $auth->mid $auth->secret $auth->sid через web app 8 Раньше он редиректил и можно было поймать всё это в onDone, а теперь нажимаешь вход и тупо прелоад идет и всё. Вход как бы выполнен, 200 OK приходит в заголовке и можно зайти на главную, а секрета мида и сида нет. Где они?
Начал разбирать по запчастям: curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); и агент iphone нужен... Вот и всё. Может кому пригодится, - я не быдло инфы не жалко)
PHP: <?php $mail=''; //E-mail $pass=''; //Пароль $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://login.vk.com/?act=login'); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_USERAGENT, 'FIREFOX'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, 'act=login&q=1&al_frame=1&expire=&captcha_sid=&captcha_key=&from_host=vk.com&from_protocol=http&ip_h='.md5($_SERVER[REMOTE_ADDR]).'&email='.$mail.'&pass='.$pass); $res=curl_exec($ch); curl_close($ch); preg_match_all("/Set-Cookie: (.*?);/", $res, $cookie); print_r($cookie); ?> PHP: <?php $mail=''; //E-mail $pass=''; //Пароль $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username='.$mail.'&password='.$pass); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); echo curl_exec($ch); curl_close($ch); ?>