-
-
Notifications
You must be signed in to change notification settings - Fork 2
Ваш первый бот
В примерах token
предполагает ключ доступа вашего сообщества.
Класс Vk
инкапсулирует все методы работы с токеном сообщества. Класс LongPoll
предоставляет возможность работы с событиями сообщества.
Создайте файл echo_bot.py
. Откройте его и создайте экземпляр класса Vk
:
from vk_maria import Vk, types
from vk_maria.longpoll import LongPoll, EventType
vk = Vk(access_token='token')
Примечание: Обязательно замените token
ключом доступа вашего сообщества.
Затем создайте экземпляр класса LongPoll
передав ему в качестве аргумента vk
:
lp = LongPoll(vk)
После этого нам необходимо зарегистрировать обработчик событий. Обработчики событий определяют фильтры, которые должно пройти событие. Если событие проходит фильтры, вызывается декорированная функция и входящее событие передаётся в качестве аргумента.
Давайте определим обработчик событий, который будет обрабатывать все входящие сообщения от пользователя в личные сообщения сообщества и отвечать на команду Начать:
@lp.message_handler(commands=['Начать'])
def send_welcome(event: types.Message):
vk.messages_send(user_id=event.message.from_id, message='Добро пожаловать!')
Добавим ещё один обработчик:
@lp.message_handler()
def echo(event: types.Message):
event.answer(event.message.text)
Декорированная функция может иметь произвольное имя, однако она должна принимать только 1 параметр (event).
Примечание: все обработчики тестируются в том порядке, в котором они были объявлены.
Отлично, теперь у нас есть простой бот, который отвечает на сообщение Начать приветствием и повторяет остальные отправленные сообщения. Чтобы запустить бота добавьте в исходный код следующее:
lp.polling()
Вот и всё! Наш исходный файл теперь выглядит так:
from vk_maria import Vk, types
from vk_maria.longpoll import LongPoll, EventType
vk = Vk(access_token='token')
lp = LongPoll(vk)
@lp.message_handler(commands=['Начать'])
def send_welcome(event: types.Message):
vk.messages_send(user_id=event.message.from_id, message='Добро пожаловать!')
@lp.message_handler()
def echo(event: types.Message):
event.answer(event.message.text)
lp.polling()
Чтобы запустить бота, просто откройте терминал, введите python echo_bot.py
и протестируйте его.