Python wrapper for the WhatsApp Cloud API
Project description
PyWa • Python wrapper for the WhatsApp Cloud API
PyWa is a Fast, Simple and Lightweight Python framework for building WhatsApp bots using the WhatsApp Cloud API. The library is designed to be easy to use, and handle all the heavy lifting for you.
📄 Quick Documentation Index
Get Started • WhatsApp Client • Handlers • Filters • Updates • Examples
👨💻 Usage
Create a WhatsApp client and send a message
from pywa import WhatsApp
wa = WhatsApp(
phone_id='100458559237541',
token='xxxxxxxxxxxxxxx'
)
wa.send_message(
to='9876543210',
text='Hello from PyWa!'
)
Create a WhatsApp client, pass a web server app (Flask in this example) and start the webhook:
from pywa import WhatsApp
from flask import Flask
from pywa.types import Message, CallbackButton, Button
from pywa.filters import text, callback
flask_app = Flask(__name__)
wa = WhatsApp(
phone_id='1234567890',
token='xxxxxxxxxxxxxxx',
server=flask_app,
verify_token='XYZXYZ',
)
@wa.on_message(text.matches('Hello', 'Hi'))
def hello(client: WhatsApp, msg: Message):
msg.react('👋')
msg.reply_text(
text=f'Hello {msg.from_user.name}!',
keyboard=[
Button(
title='Click me!',
callback_data='id:123'
)
]
)
@wa.on_callback_button(callback.data_startswith('id'))
def click_me(client: WhatsApp, clb: CallbackButton):
clb.reply_text('You clicked me!')
flask_app.run() # Run the flask app to start the server
🎛 Installation
Install using pip3:
pip3 install -U pywa
Install from source (the bleeding edge):
git clone https://github.com/david-lev/pywa.git
cd pywa && pip3 install -U .
If you going to use the webhook features, here is shortcut to install the required dependencies:
pip3 install -U pywa[flask]
pip3 install -U pywa[fastapi]
💾 Requirements
Python 3.10 or higher - https://www.python.org
📖 Setup and Usage
See the Documentation for detailed instructions
☑️ TODO
Add tests
Add support for async
Add support for typed template messages
Move from threading
Add support for more web frameworks (Django, etc.)
Add support for more types of updates (account_alerts, message_template_status_updates, etc.)
Add more examples
Feel free to open an issue if you have any suggestions. or even better - submit a PR!
📝 License
This project is licensed under the MIT License - see the LICENSE file for details
🔱 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
🙏 Acknowledgments
Pyrogram - For the design inspiration
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
File details
Details for the file pywa-1.0.2-py3-none-any.whl
.
File metadata
- Download URL: pywa-1.0.2-py3-none-any.whl
- Upload date:
- Size: 43.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5ac22857482c211c2792fd5b334f8a25139c65b480d1313afbe9333cef793a5 |
|
MD5 | 759ae881dcb12298c137a41ecc221213 |
|
BLAKE2b-256 | 9322ca0c2b1cb27092b3182d76d7f15fc6e71896b7d5a04e04f179684d2699a5 |