Come ricevere messaggi WhatsApp utilizzando Python e webhook

introduzione

In questo tutorial creeremo una semplice app per gestire i messaggi WhatsApp in arrivo utilizzando Python.

Dipendenze

installa ngrok

per scopi di sviluppo locale è necessario un servizio di tunneling. Questo esempio usa ngrok , puoi scaricare ngrok da qui .

installare FLACONE

pip install flask

dobbiamo distribuire il server usando il framework FLSK.
Il FLASK consente di rispondere comodamente alle richieste in arrivo ed elaborarle.

passaggio 1: crea una nuova app flask

Creeremo il file: app.py e al suo interno scriviamo il seguente codice

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 : Elaborazione dei messaggi in arrivo

Creeremo il file: test.py e al suo interno scriviamo il seguente codice

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

passaggio 3: eseguire il progetto

Inizia la boccetta:

flask run

Inizia Ngrok

Per Windows:

ngrok http 80

Per Mac:

./ngrok http 5000

Dopo questo, dovresti vedere ad esempio:

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

incolla l’URL nelle impostazioni dell’istanza Ì Come nell’immagine seguente

Ricevi messaggi WhatsApp utilizzando python e webhook-ultramsg

ESEMPIO DI RISPOSTA 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: Project Test e Ricevi messaggi WhatsApp il primo messaggio

Ora invia un messaggio WhatsApp al numero a cui stai collegando l’istanza.
Verranno stampati il numero del mittente e il messaggio inviato.

Congratulazioni. Hai ricevuto il tuo primo messaggio WhatsApp.

Ora dopo aver ricevuto i messaggi di WhatsApp puoi creare facilmente un chatbot utilizzando Python e l’API Ultramsg.

Tipi di webhook da utilizzare con WhatsApp API e Ultramsg

  • webhook_message_received : notifiche nei webhook alla ricezione del messaggio.
  • webhook_message_create : notifiche nei webhook quando il messaggio viene creato.
  • webhook_message_ack : notifiche ack (messaggio consegnato e messaggio visualizzato) nei webhook.

puoi vedere la documentazione completa dell’API di Whatsapp e le domande frequenti .