Быстрый старт#
Прежде всего вы должны получить ключ доступа вашего сообщества.
Простейший пример#
Класс Vk
инкапсулирует все методы работы с токеном сообщества.
Создайте файл echo_bot.py. Откройте его и создайте экземпляр класса Vk
:
from vk_maria import Vk, types
from vk_maria.dispatcher import Dispatcher
vk = Vk(access_token='token')
Примечание
Обязательно замените token ключом доступа вашего сообщества.
Затем создайте экземпляр класса Dispatcher
передав ему в качестве аргумента vk
:
dp = Dispatcher(vk)
После этого нам необходимо зарегистрировать обработчик событий. Обработчики событий определяют фильтры, которые должно пройти событие. Если событие проходит фильтры, вызывается декорированная функция и входящее событие передаётся в качестве аргумента.
Давайте определим обработчик событий, который будет обрабатывать все входящие сообщения от пользователя в личные сообщения сообщества и отвечать на команду Начать:
@dp.message_handler(text='Начать')
def send_welcome(event: types.Message):
vk.messages_send(user_id=event.message.from_id, message='Добро пожаловать!')
Добавим ещё один обработчик:
@dp.message_handler()
def echo(event: types.Message):
event.answer(event.message.text)
Как вы могли заметить, event.answer
является удобным аналогом vk.messages_send
.
Декорированная функция может иметь произвольное имя, однако она должна принимать минимум 1 параметр (event).
Примечание
Все обработчики тестируются в том порядке, в котором они были объявлены.
Отлично, теперь у нас есть простой бот, который отвечает на сообщение Начать приветствием и повторяет остальные отправленные сообщения. Чтобы запустить бота добавьте в исходный код следующее:
dp.start_polling(debug=True)
Примечание
Параметр debug отвечает за вывод в консоль всех происходящих событий
Вот и всё! Наш исходный файл теперь выглядит так:
from vk_maria import Vk, types
from vk_maria.dispatcher import Dispatcher
vk = Vk(access_token='token')
dp = Dispatcher(vk)
@dp.message_handler(text='Начать')
def send_welcome(event: types.Message):
vk.messages_send(user_id=event.message.from_id, message='Добро пожаловать!')
@dp.message_handler()
def echo(event: types.Message):
event.answer(event.message.text)
if __name__ == '__main__':
dp.start_polling(debug=True)
Чтобы запустить бота, просто откройте терминал, введите python echo_bot.py
и протестируйте его.