Если вы когда-нибудь пробовали работать с WhatsApp Cloud API напрямую, то вы знаете: удовольствие так себе.
И вот тут появляется PyWa — Python-фреймворк, который делает всё это разумным, понятным и быстрым.
➡️ Что вообще умеет PyWa
Если коротко — почти всё, что нужно для нормального WhatsApp-бота:
— отправка текстов, картинок, файлов, локаций, кнопок — всего, что угодно;
— приём входящих событий в реальном времени: сообщения, реакции, клики;
— удобные listeners, чтобы ждать ответ от пользователя без костылей;
— создание и отправка темплейтов прямо из Python;
— построение WhatsApp Flows без боли;
— синхронный и асинхронный режимы (API одинаковый);
— из коробки работает с FastAPI, Flask и другими серверами;
— полностью типизировано, документировано и подходит под продакшн.
Пример: отправили сообщение — и всё работает:
from pywa import WhatsApp, types
wa = WhatsApp(
phone_id="100458559237541",
token="EAAEZC6hUxkTIB"
)
wa.send_message(
to="9876543210",
text="Hello from PyWa!",
buttons=[
types.Button(title="Menu", callback_data="menu"),
types.Button(title="Help", callback_data="help")
]
)
wa.send_image(
to="9876543210",
image="https://example.com/image.jpg",
caption="Check out this image!",
)
Обработка сообщений (пример на FastAPI):
from pywa import WhatsApp, filters, types
from fastapi import FastAPI
app = FastAPI()
wa = WhatsApp(
phone_id=123456,
token="********",
server=app,
callback_url="https://yourdomain.com/",
verify_token="xyz123",
app_id=123456,
app_secret="********"
)
@wa.on_message(filters.matches("Hello", "Hi"))
def hello(client: WhatsApp, msg: types.Message):
msg.react("👋")
msg.reply_text(
text=f"Hello {msg.from_user.name}!",
buttons=[types.Button(title="About me", callback_data="about_me")]
)
age = msg.reply("What's your age?").wait_for_reply(filters=filters.text).text
msg.reply_text(f"Your age is {age}.")
Работает очень прозрачно — почти как телеграм-боты, только для WhatsApp.
Установка:
pip install -U pywa
📱 Github
🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib
🐸 Библиотека питониста
#буст
