Необходимо авторизоваться в контакте без api с помощью curl. Посмотрел очень много информации, все варианты уже не работают. Все данные отправляю, плюс подставляю хеши ip_h и lg_h. Отправляю нужные заголовки. Всё летит на адрес
https://vk.com/login. Как и итог, не пускает.
Интересно, можно в 2019 году авторизоваться через curl в вк или нет? Может нет смысла и лучше использовать api контакта? Если у вас есть рабочий вариант на curl, поделитесь.
Использую код:
function get_content($url_auth, $auth_data = []){
$ch = curl_init();
curl_setopt ($ch, CURLOPT_HEADER, 1);
curl_setopt($ch,CURLOPT_URL, $url_auth);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36");
curl_setopt($ch, CURLOPT_REFERER,"https://vk.com");
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 1);
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch,CURLOPT_COOKIEJAR, 'cs.txt');
curl_setopt($ch,CURLOPT_COOKIEFILE, 'cs.txt');
curl_setopt($ch,CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_ENCODING, "");
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt ($ch, CURLOPT_HTTPHEADER,
[
"Accept: */*",
"Accept-Language: ru",
"Cache-Control: max-age=259200",
"Pragma: no-cache",
"Via: 1.0 gsg-server.sitegroup:3129 (squid/2.6.STABLE5)",
"X-Forwarded-For: 192.168.0.***",
"Connection: Keep-Alive"
]
);
curl_setopt($ch,CURLOPT_POST, 1);
curl_setopt($ch,CURLOPT_POSTFIELDS, http_build_query($auth_data));
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
$url_auth = 'https://vk.com/login';
$url = 'https://vk.com/feed';
$auth_data = [
"act" => "login",
"role" => "al_frame",
"expire" => "",
"captcha_sid" => "",
"captcha_key" => "",
"_origin" => "https://vk.com",
"ip_h" => "ef1366*****de28b0132",
"lg_h" => "bb389*****bbcb9db4",
"email" => "******@yandex.ru",
"pass" => "*************",
"recaptcha" => "",
"ul" => "",
];
$data = get_content($url_auth, $auth_data);
$data = get_content($url);
var_dump($data);