Como receber mensagens do WhatsApp usando python e webhook

Introdução

Neste tutorial, criaremos um aplicativo simples para lidar com mensagens recebidas do WhatsApp usando python.

Dependências

instalar ngrok

para fins de desenvolvimento local, é necessário um serviço de tunelamento. Este exemplo usa o ngrok , você pode baixar o ngrok aqui .

instalar FLASK

pip install flask

precisamos implantar o servidor usando o framework FLASH.
O FLASK permite responder convenientemente às solicitações recebidas e processá-las.

passo 1: Crie um novo aplicativo de frasco

Vamos criar o arquivo: app.py E escrever o seguinte código dentro dele

from flask import Flask, request, jsonify
from test import Ultrawebhook
import json

app = Flask(__name__)

@app.route('/', methods=['POST'])
def home():
    if request.method == 'POST':
        bot = Ultrawebhook(request.json)
        return bot.processing()

if(__name__) == '__main__':
    app.run()

passo 2: Processamento de mensagens recebidas

Vamos criar o arquivo: test.py E escrever o seguinte código dentro dele

import json
import requests


class Ultrawebhook():    
    def __init__(self, json):
        self.json = json
        self.dict_messages = json['data']


    def processing(self):
        if self.dict_messages != []:
            message = self.dict_messages
            msg_from = message['from'].split()
            msg_text = message['body'].split()
            print("sender phone number : " + msg_from[0])
            print("message : " + msg_text[0])
            return ''

Passo 3: Execute o projeto

Comece o frasco:

flask run

Iniciar ngrok

Para Windows :

ngrok http 80

Para Mac:

./ngrok http 5000

Depois disso, você deve ver um por exemplo:

https://7647-115-83-121-164.ngrok.io

cole seu URL nas configurações da instância ، Como na imagem a seguir

Receba mensagens do WhatsApp usando python e webhook-ultramsg

EXEMPLO DE RESPOSTA JSON

{
  "event_type": "message_received",
  "instanceId": "90",
  "data": {
    "id": "[email protected]_7ECAED9EB68D3474BE591443134C2E3F",
    "from": "[email protected]",
    "to": "[email protected]",
    "ack": "pending",
    "type": "chat",
    "body": "I can't send a message using php code\nCan you help me",
    "fromMe": false,
    "isForwarded": false,
    "time": 1643311467
  }
}

Finley: Teste de projeto e receba mensagens do WhatsApp a primeira mensagem

Agora envie uma mensagem do WhatsApp para o número ao qual você está vinculando a instância.
O número do remetente e a mensagem enviada serão impressos.

Parabéns. Você recebeu sua primeira mensagem do WhatsApp.

Agora, depois de receber mensagens do WhatsApp, você pode criar um chatbot facilmente usando Python e API Ultramsg.

Tipos de webhooks para usar com a API do WhatsApp e Ultramsg

  • webhook_message_received : notificações em webhooks quando a mensagem é recebida.
  • webhook_message_create : notificações em webhooks quando a mensagem é criada.
  • webhook_message_ack : notificações ack (mensagem entregue e mensagem visualizada) em webhooks.

você pode ver a documentação completa da API do Whatsapp e as perguntas frequentes .