كيفية تلقي رسائل WhatsApp باستخدام Python و webhook

مقدمة

في هذا البرنامج التعليمي ، سننشئ تطبيقًا بسيطًا للتعامل مع رسائل WhatsApp الواردة باستخدام Python.

Dependencies

تثبيت ngrok

لأغراض التجربة بالسيرفر المحلي سنحتاج لخدمة tunneling و في هذا الدرس سنستخدم ngrok يمكنك تحميل ngrok من هنا .

تثبيت FLASK

pip install flask

نحتاج إلى نشر الخادم باستخدام إطار عمل FLASK.
يسمح FLASK بالاستجابة بشكل ملائم للطلبات الواردة ومعالجتها.

الخطوة 1: إنشاء تطبيق flask جديد

سننشئ الملف: app.py ونكتب الكود التالي بداخله

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

الخطوة 2: معالجة الرسائل الواردة

سننشئ الملف test.py ونكتب الكود التالي بداخله

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

الخطوة 3: قم بتشغيل المشروع

تشغيل flask

flask run

تشغيل ngrok

لنظام التشغيل ويندوز :

ngrok http 80

لل ماك :

./ngrok http 5000

بعد ذلك ، يجب أن ترى على سبيل المثال:

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

الصق عنوان URL الخاص بك في إعدادات الجهاز في الترا مسج ، كما في الصورة التالية

استقبال رسائل WhatsApp باستخدام Python و webhook-ultramsg

مثال على نموذج الرد بشكل 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: اختبار المشروع وتلقي رسائل WhatsApp الرسالة الأولى

أرسل الآن رسالة WhatsApp إلى الرقم الذي تربط المثيل به.
ستتم طباعة رقم المرسل والرسالة المرسلة.

تهانينا. لقد تلقيت أول رسالة WhatsApp .

الآن بعد تلقي رسائل WhatsApp ، يمكنك إنشاء روبوت محادثة بسهولة باستخدام Python و Ultramsg API.

أنواع خطاطيف الويب التي يمكن استخدامها مع WhatsApp API & Ultramsg

  • webhook_message_received: إشعارات الـ webhooks عند استلام الرسائل.
  • webhook_message_create : إشعارات الويب هوك عند إنشاء رسالة .
  • webhook_message_ack : لمعرفة حالة الرسائل .

يمكنك الاطلاع على وثائق Whatsapp API الكاملة والأسئلة الشائعة .