Как фильтровать входящие сообщения#
Установка#
Установка:
python -m pip install whatsapp-chatbot-python
Импорт#
from whatsapp_chatbot_python import GreenAPIBot, Notification
Примеры#
Как инициализировать объект#
bot = GreenAPIBot(
"1101000001", "d75b3a66374942c5b3c019c698abc2067e151558acbd412345"
)
Как фильтровать входящие сообщения#
Сообщения можно фильтровать по чату, по отправителю, по типу и тексту сообщения. Для фильтров чата, отправителя и типа сообщения можно использовать строку (str
) или список из строк (list[str]
). Текст сообщения можно фильтровать по тексту, по команде и регулярным выражениям. Ниже таблица с названиями фильтров и возможными значениями.
Название фильтра | Описание | Возможные значения |
---|---|---|
from_chat | Чат или чаты от которых нужно получать сообщения | "11001234567@c.us" или ["11001234567@c.us", "11002345678@c.us"] |
from_sender | Отправитель или отправители от которых нужно получать сообщения | "11001234567@c.us" или ["11001234567@c.us", "11002345678@c.us"] |
type_message | Тип или типы сообщения, которые нужно обрабатывать | "textMessage" или ["textMessage", "extendedTextMessage"] |
text_message | Ваша функция будет выполнена если текст полностью соответствует тексту | "Привет. Мне нужна помощь" |
regexp | Ваша функция будет выполнена если текст полностью соответствует шаблону регулярного выражения | r"Привет. Мне нужна помощь" |
command | Ваша функция будет выполнена если префикс и команда полностью соответствуем вашим значениям | "help" или ("help", "!/") |
Как добавить фильтры через декоратор#
@bot.router.message(command="command")
Как добавить фильтры с помощью функции#
bot.router.message.add_handler(handler, command="command")
Как фильтровать сообщения по чату, отправителю или типу сообщения#
Чтобы фильтровать сообщения по чату, отправителю или типу сообщения, нужно добавить строку (str
) или список из строк (list[str]
).
from_chat = "11001234567@c.us"
from_sender = "11001234567@c.us"
type_message = ["textMessage", "extendedTextMessage"]
Как фильтровать сообщения по тексту сообщения или регулярным выражениям#
Чтобы фильтровать сообщения по тексту сообщения, регулярным выражениям или команде, нужно добавить строку (str
).
text_message = "Привет. Мне нужна помощь"
regexp = r"Привет. Мне нужна помощь"
Как фильтровать сообщения по команде#
Чтобы фильтровать сообщения по команде, нужно добавить строку (str
) или кортеж (tuple
). Вам нужно указать либо название команды, либо название команды и строку префиксов. Префикс по умолчанию: /
.
command = "help"
command = ("help", "!/")
Пример#
Ссылка на пример: filters.py.
@bot.router.message(command="help")
def message_handler(notification: Notification) -> None:
notification.answer_with_file(file="help.png")
bot.run_forever()
Запуск приложения#
python filters.py
Список примеров#
Описание | Ссылка на пример |
---|---|
Как начать получать сообщения и отвечать на них | base.py |
Как получать другие уведомления и обрабатывать тело уведомления | event.py |
Как фильтровать входящие сообщения | filters.py |
Как обрабатывать кнопки | buttons.py |
Пример бота | full.py |
GREEN-API демо чатбот | bot.py |