Skip to main content

Python wrapper for the WhatsApp Cloud API

Project description

PyWa Logo

PyWa • Python wrapper for the WhatsApp Cloud API

PyPI Downloads PyPI Version CodeFactor Docs Telegram

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 StartedWhatsApp ClientHandlersFiltersUpdatesExamples


👨‍💻 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

📖 Setup and Usage

See the Documentation for detailed instructions

☑️ TODO

  • Add tests

  • Add support for async

  • 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

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 Distribution

pywa-1.4.0.tar.gz (52.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pywa-1.4.0-py3-none-any.whl (57.3 kB view details)

Uploaded Python 3

File details

Details for the file pywa-1.4.0.tar.gz.

File metadata

  • Download URL: pywa-1.4.0.tar.gz
  • Upload date:
  • Size: 52.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pywa-1.4.0.tar.gz
Algorithm Hash digest
SHA256 34ad1cd36268c5c49a3d7ef6f8d404b81c8dc3940dbfd45a00014b302acce022
MD5 2cce73b5de32525ee1a1917a4fddcf24
BLAKE2b-256 9a5dccb70b0d873f478314f062a319578ec06ffdc8993aa670aa240e1dfa2528

See more details on using hashes here.

File details

Details for the file pywa-1.4.0-py3-none-any.whl.

File metadata

  • Download URL: pywa-1.4.0-py3-none-any.whl
  • Upload date:
  • Size: 57.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.18

File hashes

Hashes for pywa-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ff40af2141d764aa34387c1510f40f9422a7a3d0ba0b3b40993c9d71b4e6d788
MD5 45497d92be3e6a7331c5c5926c6c1fcb
BLAKE2b-256 29c67460da95a7b7f412c0a3516a2255456bc9f415d4dbc4c9bcf038cd07b393

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page