Введение и написание кода
Наш модуль написан для работы с 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/айди_группы

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