Cómo recibir mensajes de WhatsApp usando python y webhook

Introducción

En este tutorial, crearemos una aplicación simple para manejar los mensajes entrantes de WhatsApp usando python.

dependencias

instalar ngrok

para fines de desarrollo local, se requiere un servicio de túneles. Este ejemplo usa ngrok , puede descargar ngrok desde aquí .

instalar FRASCO

pip install flask

necesitamos implementar el servidor utilizando el marco FLASK.
El FLASK permite responder convenientemente a las solicitudes entrantes y procesarlas.

paso 1: crear una nueva aplicación de matraz

Crearemos el archivo: app.py y dentro de él escribimos el siguiente código

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()

paso 2: Procesamiento de mensajes entrantes

Crearemos el archivo: test.py Y dentro de él escribimos el siguiente código

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 ''

paso 3: ejecutar el proyecto

Frasco de inicio:

flask run

Iniciar ngrok

Para ventanas :

ngrok http 80

Para Mac :

./ngrok http 5000

Después de esto, debería ver un ejemplo:

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

pegue su URL en la configuración de instancia, como en la siguiente imagen

Reciba mensajes de WhatsApp usando python y webhook-ultramsg

EJEMPLO DE RESPUESTA 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: prueba de proyecto y recibe mensajes de WhatsApp el primer mensaje

Ahora envíe un mensaje de WhatsApp al número al que está vinculando la instancia.
Se imprimirá el número del remitente y el mensaje enviado.

Felicidades. Has recibido tu primer mensaje de WhatsApp.

Ahora, después de recibir mensajes de WhatsApp, puede crear un chatbot fácilmente usando Python y la API de Ultramsg.

Tipos de webhooks para usar con la API de WhatsApp y Ultramsg

  • webhook_message_received : notificaciones en webhooks cuando se recibe un mensaje.
  • webhook_message_create : notificaciones en webhooks cuando se crea un mensaje.
  • webhook_message_ack : notificaciones de acuse de recibo (mensaje entregado y mensaje visto) en webhooks.

Puede ver la documentación completa de la API de Whatsapp y las preguntas frecuentes .