Задать вопрос
@alexwprof

Как авторизоваться в контакте с помощью curl, не используя api?

Необходимо авторизоваться в контакте без 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);
  • Вопрос задан
  • 966 просмотров
Подписаться 2 Простой 2 комментария
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 2
@dimmsan
Есть рабочий вариант, но там вход через m.vk.com, позволяет делать все тоже самое.
Библиотека из скрипта Simple HTML DOM
Скрипт не мой, автора не помню, находил вроде тоже здесь на Тостере.
Скрипт
Ответ написан
zorba_buddha
@zorba_buddha
IT
CURLOPT_REFERER точно правильный?
Ответ написан
Ваш ответ на вопрос

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

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