مقدمة
في هذا البرنامج التعليمي ، سننشئ تطبيقًا بسيطًا للتعامل مع رسائل 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 runflask run
تشغيل ngrok
لنظام التشغيل ويندوز :
ngrok http 80ngrok http 80
لل ماك :
./ngrok http 5000./ngrok http 5000
بعد ذلك ، يجب أن ترى على سبيل المثال:
https://7647-115-83-121-164.ngrok.iohttps://7647-115-83-121-164.ngrok.io
الصق عنوان URL الخاص بك في إعدادات الجهاز في الترا مسج ، كما في الصورة التالية

مثال على نموذج الرد بشكل 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 الكاملة والأسئلة الشائعة .