Skip to main content

SDK leve para WhatsApp Business Cloud API

Project description

py-whatsapp-cloud 🚀

Uma SDK Python ultra-leve e de alta performance para a WhatsApp Business Cloud API. Projetada especificamente para desenvolvedores que constroem aplicações multi-tenant e precisam de isolamento total de dados, simplicidade e velocidade.

Ao contrário da SDK oficial da Meta, a py-whatsapp-cloud foca exclusivamente no WhatsApp, eliminando dependências desnecessárias de marketing e anúncios.


✨ Funcionalidades Atuais

  • Arquitetura Multi-tenant: Gerencie múltiplos tokens, Phone IDs e WABA IDs simultaneamente de forma isolada.
  • Mensageria Completa: Envio de textos e templates (essenciais para iniciar conversas).
  • Gestão de Mídias: Upload de arquivos para a Meta, envio de imagens/documentos e download de mídias recebidas.
  • Webhooks Seguros: Validação nativa de assinatura X-Hub-Signature-256 para garantir que os dados venham da Meta.
  • Perfil de Negócio: Consulta de dados do perfil da empresa diretamente via API.

📦 Instalação

Como a biblioteca está em desenvolvimento ativo, você pode instalá-la diretamente do GitHub:

pip install git+https://github.com/josuelb/py-whatsapp-cloud.git

🚀 Como usar

1. Inicializando o Cliente

Para cada empresa que você atende, basta instanciar um novo cliente com suas respectivas credenciais:

from py_whatsapp_cloud.client import WhatsAppClient

client = WhatsAppClient(
    token="SEU_ACCESS_TOKEN",
    phone_number_id="SEU_PHONE_ID",
    waba_id="SEU_WABA_ID"
)

2. Enviando Mensagens

# Texto simples
client.send_text("5511999999999", "Olá! Como posso ajudar?")

# Template (necessário para iniciar conversas fora da janela de 24h)
client.send_template("5511999999999", "boas_vindas", language_code="pt_BR")

3. Trabalhando com Mídias

O processo de upload e envio é simplificado:

# Faz o upload e obtém o ID
media_id = client.upload_media("caminho/do/arquivo.pdf", "application/pdf")

# Envia o documento para o cliente
client.send_document("5511999999999", media_id, filename="Contrato.pdf")

🛡️ Validação de Webhooks

Proteja seu endpoint de mensagens recebidas validando a assinatura enviada pela Meta:

from py_whatsapp_cloud.webhooks import WebhookHandler

# No seu controller de Webhook:
is_valid = WebhookHandler.verify_signature(
    payload_body=request.data,
    signature=request.headers.get("X-Hub-Signature-256"),
    app_secret="SEU_APP_SECRET_DA_META"
)

if is_valid:
    event = WebhookHandler.process_event(request.json)
    print(f"Mensagem recebida de: {event['messages'][0]['from']}")

🛠️ Roadmap (Evolução)

Esta biblioteca está em sua fase v0.1.0 (Alpha). As próximas atualizações incluirão:

  • Suporte para Mensagens Interativas (Botões e Listas).
  • Implementação de Mensagens de Localização.
  • Integração com WhatsApp Flows.
  • Gestão de Catálogo de Produtos.
  • Tratamento de erros customizado por código de erro da Meta.

📄 Licença

Distribuído sob a licença MIT. Veja LICENSE para mais informações.

🤝 Contribuição

Contribuições são o que fazem a comunidade open source um lugar incrível para aprender, inspirar e criar. Sinta-se à vontade para abrir uma Issue ou enviar um Pull Request.


Desenvolvido com ❤️ por Josué Luiz


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

py_whatsapp_cloud-0.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

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

py_whatsapp_cloud-0.1.0-py3-none-any.whl (7.1 kB view details)

Uploaded Python 3

File details

Details for the file py_whatsapp_cloud-0.1.0.tar.gz.

File metadata

  • Download URL: py_whatsapp_cloud-0.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for py_whatsapp_cloud-0.1.0.tar.gz
Algorithm Hash digest
SHA256 5a86981d7eba915a0efa9224712cc9000930f8440fe077c616873924e85fef57
MD5 5561375e3fae9f49ffc4541d04783d6b
BLAKE2b-256 1e7d3177a5851ec1a65932d1de8cd9dc9c5c07d00e7c17930cf9b2c7552bd7ce

See more details on using hashes here.

File details

Details for the file py_whatsapp_cloud-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for py_whatsapp_cloud-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 23572c67d3ee122a20fd125c0304e0c9cfe0393d93d027616e138427cbfd0f5f
MD5 587e808df80d4523fa1800abe59275e8
BLAKE2b-256 8c8102145131f0be0bf26b14a774756769d697268bca619c739f510f7897215e

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