Создания простого бота VK

Всем привет, и так в этой статье мы разберем как создавать простого бота для вк! Вам нужно иметь хотя бы начальные знания в области php что бы разобраться в коде но я постараюсь объяснить все очень доступно и конечно же здесь будет исходник!))

Нам понадобится хостинг на котором будет располагаться наш исполнительный файл и к которому мы прикрепим группу в вк. Вы спросите для чего группа ну это элементарно мы делаем с вами самого простого бота который будет писать от имени сообщества конечно есть боты для которых создают целую страницу в вк но там процесс чуть чуть сложнее и выглядет иначе. И так приступим!

Нам нужно:

  1. Группа в вк
  2. Хостинг
  3. Терпение

И так заходим в группу 

Потом переходим в Управление сообществом

 

Переходим в раздел Работ с API

Нажимаем на кнопку создать ключ

после того как вы создадите ключ , скопируйте его в какой ни будь файл что бы не потерять.

А вот теперь мы начинаем писать код!)

Открываем редактор в котором вы будете его писать. Это может быть Sublime text или Notepad или какой ни будь другой.

И так создаем файл send.php

И пишем туда следующий код:

 

<?php

//request vk api callback

if (!isset($_REQUEST)) {

               return;

}

$confirmation_token = «a5eba2d6»;

// Tokken

$token = «TOKEN»;

// Secret key

$secretKey = ‘KEY’;

// проверяем secretKey

$data = json_decode(file_get_contents(‘php://input’));

//Проверяем, что находится в поле «type»

switch ($data->type) {

//Если это уведомление для подтверждения адреса сервера…

case ‘confirmation’:

//…отправляем строку для подтверждения адреса

echo $confirmation_token;

break;

case ‘message_new’:

//…получаем id его автора

$user_id = $data->object->user_id;

//затем с помощью users.get получаем данные об авторе

$user_info = json_decode(file_get_contents(«https://api.vk.com/method/users.get?user_ids={$user_id}&v=5.0»));

//и извлекаем из ответа его имя

$user_name = $user_info->response[0]->first_name;

$last_name = $user_info->response[0]->last_name;

//Получаем текст сообщения

$body = $data->object->body;

//Генерируем ответное сообщение, путем обращения к массиву с ответами

$request_params = array(

‘message’      => «Привет!»,

‘user_id’      => $user_id,

‘access_token’ => $token,

‘v’            => ‘5.0’,

);

$get_params = http_build_query($request_params);

file_get_contents(‘https://api.vk.com/method/messages.send?’.$get_params);

//Возвращаем «ok» серверу Callback API echo (‘ok’);

break;

}

?>

Вставляем туда вот этот код а теперь чуть чуть пробежимся по нему)

Первое что нам нужно изменить там это $token = «TOKEN»;  за место слова TOKEN вставляем тот ключ который мы создавали.

Далее мы переходим обратно к группе и нажимаем Callback API а если у вас уже это все открыто то вписываем туда данные.

 

Вводим секретный ключ например yourkey1 и копируем его, после вставляем его в код $secretKey = ‘KEY’; за место слова KEY.

Далее вам нужно взять еще код подтверждения для того что бы вк идентифицировал ваш сервер откуда будет общаться ваш бот.  Этот код находится над Секретным ключом  в моем случае это a5eba2d6.

Копируем его и вставляем $confirmation_token = «код»; вот сюда.

Сохраняем наш файл send.php и загружаем на наш хостинг.

Далее в поле «Адрес вашего сервера» указываем ссылку на наш файл send.php

Так же нам нужно включить некоторые опции в этом разделе.  Переходи в Типы событий.

и ставим галочки как показано на скриншоте:

 

Готово! Боту можно писать но он пока знает только слово — привет. Вы можете его настроить дальше на различные команды но здесь мы это разбирать не будет я лишь покажу где это делать,  а если быть точным в какой части кода.

 

$request_params = array( $request_params = array(

‘message’      => «Привет!»,

‘user_id’      => $user_id,

‘access_token’ => $token,

‘v’            => ‘5.0’,

);

Я уже заранее заготовил вам переменную которая хранит сообщения ползователя она называется $body. 

Например что бы отправить сообщения пользователю то которое он отправил боту то мы просто делаем так:

$request_params = array( $request_params = array(

‘message’      => $body,

‘user_id’      => $user_id,

‘access_token’ => $token,

‘v’            => ‘5.0’,

);

Спасибо за внимание!

Добавить комментарий