Как стать автором
Обновить

Создание VK чат-бота на базе VkBotCore C#

Время на прочтение3 мин
Количество просмотров9.5K
Данная статья создана для ленивых людей, которые не хотят много кодить и иметь дело со всей «начинкой».

Подготовка группы


Для начала нам необходимо создать сообщество, которое будет привязано к нашему боту.

Для этого заходим в раздел «Сообщества» и нажимаем «Создать сообщество»

image

Теперь настроим его для работы с Callback-API //Подробнее про Callback-API

Переходим в «Управление»>>

image

>>«Настройки»>>«Работа с API»

image

Создаём ключ доступа со всеми разрешениями и выписываем его, он нам ещё пригодится

image

Далее переходим на вкладку Callback-API, Выбираем последнюю версию API и выписываем указанный код конфирмации

image

Осталось включить сообщения. Переходим в раздел «Сообщения»>>«Настройки для бота» включаем и сохраняем настройку

image


Подготовка сервера



Для работы боту необходимо место, где он будет запущен. Для этого подойдёт любой хостинг, ведь .NET Core можно запустить с любой платформы.

Мною рассмотрен пример с VPS сервером на Ubuntu 18.04

На чистый сервер для работы бота необходимо поставить .NET Core не ниже 2.2 версии.

Вводим следующие команды:
Команда для регистрации ключа Microsoft и веб-канала:

> wget -q https://packages.microsoft.com/config/ubuntu/19.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

Обновляем продукты, доступные для установки:

> sudo apt-get update
> sudo apt-get install apt-transport-https
> sudo apt-get update

Теперь устанавливаем сам .NET Core
Для Runtime версии вводим команду:

> sudo apt-get install aspnetcore-runtime-3.1

Для Software Development Kit версии:

> sudo apt-get install dotnet-sdk-3.1

После установки среды проверим её готовность командой:

> dotnet --info

Установка и настройка


Переходим непосредственно к боту.

Скачиваем и выгружаем архив со сборкой.

Открываем файл appsettings.json

image

Вставляем в значения AccessToken ключ доступа и в значение Confirmation ключ конфирмации, сохранённые ранее.

image

Сохраняем и возвращаемся в консоль.

Командой 《cd "путь к папке"》 переходим к папке со сборкой и вводим команду для запуска:

> dotnet vkBotCore.dll

Остаётся привязать бота к группе. Для этого в разделе Callback-API в поле адреса вписываем домен, к которому привязан сервер с путём /api/callback

image

Если всё сделано правильно, то после подтверждения появится зелёная галочка.

Создание плагина


Базовые функции VkBotCore как чат-бота включают в себя только 2 команды: /help и /everyone
Для увеличения функционала необходимо написать плагин.

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

Создадим новый проект

image

Подключим к проекту библиотеку vkBotCore.dll из сборки

image

image

Добавляем using на vkBotCore.Plugins и наследуем основной класс от Plugin

using vkBotCore.Plugins;

namespace myPlugin
{
    public class MyFirstPlugin : Plugin
    {
    }
}

Добавим команду hello, чтобы она отвечала Привет {имя}

using vkBotCore.Plugins;
using vkBotCore.Plugins.Attributes;

namespace myPlugin
{
    public class MyFirstPlugin : Plugin
    {
        [Command]
        public void Hello(CommandContext context)
        {
            context.Chat.SendMessage($"Привет {context.Sender.GetMentionLine()}");
        }
    }
}

Теперь создадим в папке сборки новую папку с названием plugins
Сохраним в ней собранный плагин

image

p.s. Для работы команд, в настройках «Calback-API»>>«Типы событий» необходимо включить оповещение входящих сообщений.

image

Запускаем и проверяем:

image

Материалы по теме


Архивы сборки и тестового плагина
Исходный код VkBotCore
Статья с чат-ботом на базе ASP.NET Core, VkNet C#
Теги:
Хабы:
+8
Комментарии4

Публикации

Истории

Работа

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн