Введение и написание кода

Наш модуль написан для работы с callback событиями серверов vk.com и создания ботов на принципе callback. Этот метод подходит для нагруженных проектов, которые соединяют в себе несколько ботов, образуя сеть ботов.

Итак, наш модуль имеет следующие классы: server, group, vk_event, vk_callbackException. Чтобы вы могли написать бота, вам нужны только два из них: server и group. Перейдём непосрдественно к коду:

Для начала, мы должны создать класс, который наследуется от класса server и создадим там метод event со следующими аргументами:

import vk_callback


class bot(vk_callback.server):
    def event(self, group_obj, Event):
        pass  # Сюда будем писать код

group_obj отвечает за объект группы, Event - это объект события.

У group_obj есть следующие параметры: id, return_str, secret_key. Для разработки бота нам достаточно только id, где id это id группы.

У Event есть следующие параметры: type, object, group_id, event_id, secret (всё тоже самое, что и в объекте события вк). Для object это словарь с параметрами объекта события.

Проверять секретный ключ нет необходимости, за это отвечает метод класса confirmation_secret. Перейдём же к самому интересному... Давайте подключим двух ботов и сделаем для них разные ответы, чтобы отчётливее продемонстрировать возможности ботов:

К нашему методу event мы добавим код, который мы хотим реализовать. Далее, мы ниже создаём объект класса bot и добавляем туда объекты класса group, которые будут являться объектами групп, к которым мы подключили callback. Затем, запускаем нашего бота

import vk_callback
import vk_api
import random


class bot(vk_callback.server):
    def event(self, group_obj, Event):
        bot_1 = vk_api.VkApi(token='***').get_api()
        bot_2 = vk_api.VkApi(token='***').get_api()
        if Event.type == 'message_new':
            if group_obj.id == 12345678:
                bot_1.messages.send(peer_id=Event.object['peer_id'], random_id=random.randint(0, 999999), message='hello')
            else:
                bot_2.messages.send(peer_id=Event.object['peer_id'], random_id=random.randint(0, 999999), message='hi')


bot = bot(host='website.ru', groups=[
    vk_callback.group(12345678, return_str="11693324", secret_key="secret_key_here"),
    vk_callback.group(87654321, return_str="1af47ed9", secret_key="secret_key_here")
], port=8080)

bot.start()

Как подключить callback

Подключить callback сервер к вашей группе очень просто! Для начала, заходим в настройки группы в раздел "работа с API", затем заходим в раздел callback

Затем, нам нужно выбрать в настройках события, которые мы будем обрабатывать

Отлично! Теперь мы можем приступить к подключению нашего сервера. Для начала, скопируем что должен вернуть при подтверждении бот и его секретный ключ и вставим в код нашей программы, также скинем в объект айди нашей группы.

Запускаем сервер, в графе адреса заполняем адрес нашего сервера в формате crthst::rpl/айди_группы

Жмём подтвердить. Поздравляем, бот подключен!