الحصول على رسالة بالمعرف

استرجع رسالة معينة باستخدام معرفها الفريد.

POST
https://api.wawp.net/v2/messages/get?access_token=YOUR_ACCESS_TOKEN&chatId=201234567890%40c.us&downloadMedia=true&instance_id=123456789&messageId=true_..._...

تسجيل الدخول مطلوب

سجل الدخول لاستبدال المعرفات (Instance ID) ورمز الوصول (Access Token) بمعلومات حسابك الحقيقي لاختبار ال API مباشرة.

تسجيل الدخول
اختبار /v2/messages/get
POST
POST

لا توجد معاملات استعلام مطلوبة

هذه النهاية الطرفية لا تتوقع بيانات في الرابط.

توصيات

  • أضف تأخيرات عشوائية بين الرسائل لمحاكاة السلوك البشري.

  • تحقق من أرقام الهواتف قبل الإرسال لضمان التسليم.

الوصول الدقيق: إتقان استرجاع الرسائل المحددة

تعد نقطة النهاية /v2/messages/get الأداة الأكثر دقة في مجموعة إجراءات المحادثة في Wawp. بينما تتعامل نقاط النهاية الأخرى مع القوائم ونظرات العامة، تم تصميم هذه النقطة لـ الاسترجاع عالي الدقة لتفاعل واحد. إنها الآلية الأساسية لجلب البيانات الوصفية للرسالة، وتتبع تاريخ الحالة، والقيام بـ "إرواء" الوسائط عند الطلب دون إثقال شبكتك ببيانات ثنائية غير ضرورية.


🏗️ سير العمل التقني: منطق "المسبار العميق"

عند طلب رسالة بالمعرف، يقوم محرك Wawp بعملية بحث فهرس مستهدفة:

  1. تحقق الهوية: يستخدم المحرك messageId لتحديد المدخل الدقيق في قاعدة البيانات المحلية.
  2. إعادة بناء الحالة: يجمع المحرك النص الأساسي وكل البيانات الوصفية المرتبطة، بما في ذلك JID المرسل، والطوابع الزمنية، وعلامات التوجيه، وحالة ACK الحالية.
  3. فك تشفير الوسائط (اختياري): إذا تم تفعيل downloadMedia، يقوم المحرك بـ "جلب نشط"، حيث يحمل الملف من CDN واتساب، ويفك تشفيره باستخدام مفاتيح الجلسة، ويعيده كـ Base64.

🚀 أنماط استراتيجية محسنة

1. نمط "الوسائط عند النقر"

بالنسبة للوحات التحكم عالية الأداء، يعد تنزيل الوسائط لكل رسالة عقبة كبيرة في الأداء.

  • سير العمل:
    1. جلب سجل المحادثة باستخدام /v2/chats/messages مع downloadMedia: false.
    2. عرض قائمة الرسائل. للصور/الفيديوهات، أظهر أيقونة "تنزيل".
    3. عندما ينقر المستخدم على الأيقونة، استدعي /v2/messages/get مع downloadMedia: true.
  • الفائدة: يقلل نهج "الإرواء الكسول" هذا من عرض النطاق الترددي واستخدام المعالج لكل من خادمك ومتصفح العميل.

🛡️ أفضل الممارسات للتعرف على الهوية

  • التعامل مع المعرفات غير الموجودة: إذا كان messageId غير صحيح أو تم حذفه من قاعدة البيانات المحلية للهاتف، فستعيد الواجهة البرمجية 404 Not Found. تأكد من أن تطبيقك يتعامل مع هذا بلباقة.
  • TTL للوسائط (وقت الحياة): تذكر أن ملفات الوسائط على CDN واتساب مؤقتة (عادة 30-90 يوماً). إذا حاولت جلب رسالة قديمة جداً مع downloadMedia: true، فقد يفشل الجلب حتى لو كانت بيانات النص لا تزال متاحة.

🧩 حالات استخدام متقدمة

تتبع التفاعل مع الرسائل

بناء لوحة تحكم تحليلية لتتبع تطور حقل ack (من 1=تم الإرسال إلى 2=تم التسليم إلى 3=تمت القراءة). يتيح لك ذلك حساب مقاييس "وقت الفتح" لحملاتك.

التدقيق الجنائي

في سيناريوهات الدعم حيث يدعي العميل أن الرسالة كانت تحتوي على معلومات معينة، استخدم هذه النقطة لجلب السجل الأصلي من محرك Wawp، متجاوزاً أي تخزين مؤقت محتمل في واجهة المستخدم.

البارامترات

قم بتهيئة المعاملات المطلوبة للتفاعل مع نقطة النهاية هذه. جميع وسائط الاستعلام والبيانات مدرجة أدناه مع تفاصيلها.

محتوى الطلب

يرسل كـ JSON
string

WhatsApp Instance ID

مثال:
string

API Access Token

مثال:
string

Target Chat ID (phone@c.us or group@g.us)

مثال:
string

Unique ID of the message

مثال:
boolean

ما إذا كان سيتم تنزيل وإرجاع محتوى الوسائط

مثال:

أمثلة الكود

استخدم أمثلة الكود الجاهزة لدمج واجهة برمجة التطبيقات (API) في مشروعك بسرعة وكفاءة. اختر لغة البرمجة والمكتبة التي تفضلها.

1const baseUrl = "https://api.wawp.net";
2const endpoint = "/v2/messages/get";
3const params = new URLSearchParams({
4 "instance_id": "123456789",
5 "access_token": "YOUR_ACCESS_TOKEN"
6}).toString();
7const body = {
8 "chatId": "201234567890@c.us",
9 "messageId": "true_..._...",
10 "downloadMedia": "true"
11};
12
13fetch(`${baseUrl}${endpoint}${params ? '?' + params : ''}`, {
14 method: "POST",
15 headers: { "Content-Type": "application/json" },
16 body: JSON.stringify(body)
17})
18 .then(async (response) => {
19 if (response.ok) {
20 const data = await response.json();
21 console.log("Success:", data);
22 return data;
23 }
24
25 // Error Handling
26 if (response.status === 400) {
27 console.error("Error 400: طلب غير صالح - معاملات مطلوبة مفقودة");
28 }
29 if (response.status === 400) {
30 console.error("Error 400: طلب غير صالح (تنسيق XML)");
31 }
32 if (response.status === 400) {
33 console.error("Error 400: طلب غير صالح (نص عادي)");
34 }
35 if (response.status === 401) {
36 console.error("Error 401: غير مصرح - مفتاح الوصول غير صالح أو مفقود");
37 }
38 if (response.status === 401) {
39 console.error("Error 401: غير مصرح (تنسيق XML)");
40 }
41 if (response.status === 404) {
42 console.error("Error 404: غير موجود - الجلسة غير موجودة");
43 }
44 if (response.status === 404) {
45 console.error("Error 404: غير موجود (تنسيق XML)");
46 }
47 if (response.status === 500) {
48 console.error("Error 500: خطأ في الخادم الداخلي - فشل غير متوقع");
49 }
50 if (response.status === 500) {
51 console.error("Error 500: خطأ في الخادم الداخلي (HTML)");
52 }
53 if (response.status === 502) {
54 console.error("Error 502: بوابة غير صالحة - فشل الاتصال بالخادم الرئيسي");
55 }
56 if (response.status === 502) {
57 console.error("Error 502: بوابة غير صالحة (تنسيق XML)");
58 }
59
60 const errorText = await response.text();
61 console.error(`Error ${response.status}: ${errorText}`);
62 })
63 .catch((error) => console.error("Network Error:", error));
عينات تفاعلية
Ln 63, Col 1javascript

الردود المتوقعة

استكشف كافة الردود والنتائج المحتملة من الخادم. قمنا بتوثيق كل كود حالة (Status Code) مع أمثلة للبيانات لتسهيل معالجة الأخطاء والنجاح.

ناجح - تم إكمال الطلب بنجاح
النوع:
application/json
boolean *
string *

Example

{
"success": true,
"message": "Operation completed successfully"
}
طلب غير صالح - معاملات مطلوبة مفقودة
غير مصرح - مفتاح الوصول غير صالح أو مفقود
غير موجود - الجلسة غير موجودة
خطأ في الخادم الداخلي - فشل غير متوقع
بوابة غير صالحة - فشل الاتصال بالخادم الرئيسي
الموضوع السابقوضع علامة كمقروء
الموضوع التاليحذف رسالة

Command Palette

Search for a command to run...