Search

Romua1d.ru
Категории: Скрипты

PHP скрипт вечного онлайна Вконтакте

Недавно захотелось нарыть в интернете скрипт пхп, который бы отмечал по АПИ вконтакте что пользователь онлайн. Есть готовое решение через функцию file_get_content. Но все таки, чтобы в случае выявления капчи и т.д нужен комфорт. Слегка пришлось видоизменить его для себя.

Итак сам код это набор CURL параметров.

<?php
$url = 'https://api.vk.com/method/account.setOnline?access_token=ВАШ_ТОКЕН';

$path = 'Папка_где_будут_куки_и_логи_полный_путь';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (Windows; U; Windows NT 5.0; En; rv:1.8.0.2) Gecko/20070306 Firefox/1.0.0.4");
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $path.'/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, $path.'/cookie.txt');
$log = curl_exec($ch);
curl_close($ch);

$handle = fopen($path . "/log.txt", "w+"); //Создаем файл для логов
fwrite($handle, $log); // Запись в файл
fclose($handle); //Закрытие файла

?>

Как узнать свой auth_key? Здесь в браузере

По логам смотрим ответ сервера. Если response:1, то все впорядке. Но может выдать капчу.

Пример:

{"error":{"error_code":14,"error_msg":"Captcha needed","request_params":[{"key":"oauth","value":"1"},{"key":"method","value":"captcha.force"},{"key":"uids","value":"66748"},{"key":"access_token","value":"b9b5151856dcc745d785a6b604295d30888a827a37763198888d8b7f5271a4d8a049fefbaeed791b2882"}],"captcha_sid":"239633676097","captcha_img":"http:\/\/api.vk.com\/captcha.php?sid=239633676097&s=1"}}

В таком случае запоминаем два параметра: captcha_sid и captcha_img. И переходим по ссылке «captcha_img»:»http:\/\/api.vk.com\/captcha.php?sid=239633676097&s=1″. Там видим капчу и записываем результат, после отправляем в наш скрипт, добавив после curl_setopt($ch, CURLOPT_COOKIEFILE, $path.’/cookie.txt’); еще параметр

<? curl_setopt($curl, CURLOPT_POSTFIELDS, "captcha_sid=239633676097&captcha_key=ТЕКСТ-С-КАРТИНКИ");

Если после выполнения скрипта в логах видим снова response:1 значит все заработало и удаляем вышеуказанную строку.

Если Вам нужно два и более аккаунта, то просто добавляем после $log = curl_exec($ch);.

<? curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php'); $log = curl_exec($ch);

Чтобы скрипт работал, нужно поставить CRON на запуск каждые 4 минуты, потому что установка онлайн статуса делается на 5 минут. Пример КРОНа выглядит так:

*/4 * * * * /usr/bin/php5 /Путь/к/вашему/скрипту.php

Пример высылать не буду. Все скопируете. Нужен ли Вам здесь автоматизированный скрипт, где вы будете добавлять/удалть аккаунты?

Update: 09.02.2017

Update: 23.08.2017 — срок онлайна ВК стал 5 минут.

Плагин рейтинга создан автором этого блога. Буду очень признателен, если вы сможете его поддержать (ссылка)

p.s. Если статья была полезной и вас переполняет чувство благодарности, можете поддержать меня долларом на патреоне

Romuald Shmidtelson

Web Developer. I have expirience in FrontEnd, Backend, Devops. PHP, Python, Javascript (Vue.js, React.js)

Поделиться
Опубликовано
Romuald Shmidtelson

Недавние Посты

Как получить первый заказ на фрилансе

Получение первого заказа на фрилансе может быть вызовом, особенно для новичков, которые еще не имеют…

1 год назад

Топ 7 css фреймворков 2021 года

Разработка сайтов и веб-приложений стала в наше время неизбежной потребностью. Тем не менее, существует несколько способов…

2 года назад

Что такое семантическое ядро и как его использовать для продвижения сайта?

Компании и специалисты по маркетингу тратят много времени и денег на изучение языка поисковых систем,…

2 года назад

Что такое адаптивные изображения? Как правильно использовать srcset.

Адаптивные изображения - это набор методов, используемых для загрузки правильного изображения в зависимости от разрешения…

3 года назад

Что такое Политика конфиденциальности для сайта и для чего она нужна?

Политика конфиденциальности - это документ, в котором подробно описывается, как компания или организация обрабатывает любую…

3 года назад

Кто такой вебмастер?

В современном мире много специалистов занятых поддержанием работы сайтов, и довольно часто многих из них…

3 года назад