كيفية تلقي رسائل 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()
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 ''
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
flask run

تشغيل ngrok

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

ngrok http 80
ngrok http 80

لل ماك :

./ngrok http 5000
./ngrok http 5000

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

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

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

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

مثال على نموذج الرد بشكل JSON

{ "event_type": "message_received", "instanceId": "90", "data": { "id": "false_10172127174@c.us_7ECAED9EB68D3474BE591443134C2E3F", "from": "10172127174@c.us", "to": "10172127175@c.us", "ack": "pending", "type": "chat", "body": "I can't send a message using php code\nCan you help me", "fromMe": false, "isForwarded": false, "time": 1643311467 } }
{ "event_type": "message_received", "instanceId": "90", "data": { "id": "false_10172127174@c.us_7ECAED9EB68D3474BE591443134C2E3F", "from": "10172127174@c.us", "to": "10172127175@c.us", "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 الكاملة والأسئلة الشائعة .