Скрипт VK бот на User и bots LongPoll с возможностью расширения функционала написанный на PHP
Статьи / PHP
В очередной статье про ботов вк, мы рассмотрим работу такого бота на пользовательском аккаунте и группе и запустим User/Bots LongPoll со своего компьютера
Что бы не покупать сервер для начала работ с ботами ВК, нам будет достаточно установить OpenServer на свой компьютер для запуска PHP скриптов. Я покажу как просто и понятно запускать скрипт с ПК что бы сделать рассылку по группе без использования сторонних сервисов и ответ ботом на входящие сообщения от пользователя. Нам понадобиться:
1. OpenServer установленный на ПК
2. Библиотека для удобной работы с VK API под названием SimpleVK
Скачиваем и устанавливаем OpenServer, с официального сайта качается очень долго, советую найти torrent, или закинуть донат разработчикам что бы скачать на максимальной скорости, решать Вам. Подойдет версия BASIC, но если интернет позволяет, качайте FULL, хуже не будет
И так после установки и запуска OpenServer у нас появится в трее значек флажка красного цвета, нужно нажать на него и выбрать зеленый
Если возникли сложности при запуске, запустите OpenServer от имени администратора.
На этом подготовительные работы окончены.
Теперь в любой папке на пк, пусть это будет рабочий стол, напишем пару строк кода и добавим библиотеку. Первый скрипт отвечает на входящие сообщения пользователю, второй делает рассылку по группе ВК по всем участникам которые писали сообществу ранее. Если диалогов очень много, то начало рассылки может затянуться из-за долгого сбора данных для рассылки, такой он VK API
<?php
require_once('simplevk-master/autoload.php');
use DigitalStar\vk_api\vk_api;
use DigitalStar\vk_api\LongPoll;
const VERSION = '5.80';
$vk = vk_api::create('ТОКЕН с правами на messages (VK ME или KateMobile)', VERSION);//или логин пароль вместо токена как показано на следующей строчке
//$vk = vk_api::create('логин',' пароль', VERSION);//или логин пароль вместо токена
$vk = new LongPoll($vk);
$vk->listen(function()use($vk){ //longpoll для пользователя
$vk->on('message_new', function($data)use($vk) { //обработка входящих сообщений
$vk->initVars($id, $message, $payload, $user_id, $type, $data);
if ($message == 'привет'){ // Входящее сообщение
$vk->reply('Ну привет мой дорогой дружочек'); // Ответ на него
}
});
});
Данный скрипт будет отвечать на все входящие сообщения, дополнять такой код можно используя стандартные методы, большая часть описана на нашем сайте.
Работает он вот так:
Для нормальной работы скрипта, нужен токен от KateMobile можно получить
тут (кликтабельно) выбрав KateMobile
Второй более интересный вариант использования это Bots LongPoll используется только для групп, не забываем включить настройку в самой группе
И в разделе ТИП СОБЫТИЙ включить ВХОДЯЩИЕ СООБЩЕНИЯИ сам код:
<?php
require_once('simplevk-master/autoload.php');
use DigitalStar\vk_api\vk_api;
use DigitalStar\vk_api\LongPoll;
use DigitalStar\vk_api\Execute;
$vk = vk_api::create('ТОКЕН группы', '5.126');
$vk = new Execute($vk);
$vk = new LongPoll($vk);
$vk->listen(function($data)use($vk){ //в $data содержится все данные события, можно убрать, если не нужен
$vk->initVars($id, $message);
$cmd = explode(' ', $message, 2); // Получаем первое сообщение и последующие слова кроме первого :)
if ($cmd[0] == 'рассылка') {
$vk->reply("Рассылка запущена, текст: $cmd[1] слово стоп остановит рассылку");
$started1 = $vk->buttonText('Кнопочка 1', 'green', ['command' => 'started1']);
$started2 = $vk->buttonText('Кнопочка 2', 'white', ['command' => 'started2']);
$started3 = $vk->buttonText('Кнопочка 3', 'white', ['command' => 'started3']);
$keyboard = $vk->generateKeyboard( [[$started1],[$started2, $started3]]);
// Если клава не нужна то передаем в переменную NULL пример ниже
//$keyboard = NULL;
$vk->sendAllDialogs($cmd[1], $keyboard, $filter = 'all', $params = []); // $filter = 'all' отправить всем
}
if ($cmd[0] == 'стоп') { // Вырубаем скрипт
$vk->reply('Скрипт остановлен');
exit();
}
});
Таким образом мы делаем абсолютно бесплатную рассылку по группе ВК без сторонних приложений, удобно и легко.
Но как же запустить эти скрипты? Все очень просто. Нажимаем на флажок правой кнопкой мыши и выбираем Интернет -> Консоль, главное запустить сам OpenServer перед запуском самой консоли, должно появится это:
Теперь прописываем команды для каждого скрипта своя команда, выглядит она вот так:
php C:\Users\SEriA\OneDrive\Рабочий стол\LP\bot.php
php - Что будем выполнять
C:\Users\SEriA\OneDrive\Рабочий стол\LP\bot.php - Полный путь до файла который можно скопировать прямо в проводнике Windows
bot.php - Юзерский
bot2.php - Для группы
Архив с библиотекой и исходниками ниже:
lp.rar
Если есть вопросы, смелее пишите их в комментарии на сайте, с радостью поможем. Так же можете написать какую статью хотели бы видеть на нашем сайте, будем очень благодарны!