الحصول على نظرة عامة للمحادثات

استرجع ملخصاً لجميع المحادثات النشطة والبيانات الوصفية للرسائل.

GET
https://api.wawp.net/v2/chats/overview?access_token=123456789&instance_id=123456789

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

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

تسجيل الدخول
اختبار /v2/chats/overview
GET
GET

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

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

توصيات

  • Store the overview in a local cache (like Redux or a Map) for instant UI transitions.

  • Sort the results client-side by timestamp to ensure the most recent conversations are always at the top.

  • Use the unreadCount to drive 'Notification Badges' in your system's navigation.

نبض البريد الوارد: إتقان نظرة عامة على المحادثات

تعد نقطة النهاية /v2/chats/overview الطريقة الأكثر كفاءة لبناء لوحة تحكم رسائل عالية الأداء. بدلاً من جلب التاريخ الكامل لكل محادثة، توفر هذه النقطة "لقطة" لصندوق الوارد بالكامل، مما يسمح لك بعرض المحادثات النشطة، وعدد الرسائل غير المقروءة، وأحدث أجزاء الرسائل في استدعاء واحد خفيف للواجهة البرمجية.

بالنسبة للمطورين الذين يبنون أنظمة CRM، أو برامج مساعدة، أو أدوات مراقبة، تعد هذه النقطة المصدر الأساسي للحقيقة لـ "عرض صندوق الوارد" للمستخدم.


🏗️ هيكلية نظرة عامة

الاستجابة هي مصفوفة من الكائنات، يمثل كل منها محادثة واحدة. يتضمن كل كائن بيانات وصفية حاسمة:

  1. الهوية (id, name): معرف JID واسم العرض.
  2. عدد غير المقروء (unreadCount): عدد الرسائل التي لم يتم وضع علامة "تمت رؤيتها" عليها بعد.
  3. جزء من آخر رسالة (lastMessage): معاينة لأحدث تفاعل، بما في ذلك محتواه وطابعه الزمني ومعرفه الفريد.

🚀 استراتيجيات تحسين الأداء

عندما يدير مثيل Wawp آلاف المحادثات، يمكن أن يصبح جلب نظرة عامة عملية ثقيلة. اتبع هذه الاستراتيجيات للحفاظ على أوقات استجابة تقل عن الثانية:

1. المحاكاة الافتراضية من جهة العميل

لا تحاول عرض جميع المحادثات مرة واحدة إذا كان لدى المستخدم المئات من السلاسل النشطة.

  • التنفيذ: جلب نظرة عامة، وتخزينها في حالة محلية (Redux/Vuex)، واستخدام مكون "قائمة افتراضية" لعرض الصفوف المرئية فقط.
  • منطق التحديث: بدلاً من إعادة جلب نظرة عامة بالكامل في كل مرة تصل فيها رسالة، استخدم الويب هوك (message.any) لتحديث الصف المحدد فقط في ذاكرتك المحلية.

🛡️ أفضل الممارسات لإدارة صندوق الوارد

1. حلقة "مزامنة القراءة"

يتم تحديث unreadCount بشكل ديناميكي. لمسح شارة التنبيه في واجهتك:

  • استدعِ /v2/chat/read لمعرف المحادثة المحدد.
  • الاستدعاء التالي لـ /chats/overview سيعيد unreadCount: 0.

2. التمييز بين المجموعات والأفراد

استخدم لاحقة JID لتنسيق واجهتك:

  • @c.us: محادثة فردية. استخدم صورة رمزية للمستخدم.
  • @g.us: محادثة جماعية. استخدم أيقونة مجموعة وربما ابدأ الرسالة الأخيرة باسم المرسل للوضوح.

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

صندوق الوارد ذو الأولوية

ابحث عن علامة تبويب "الأولوية" عن طريق تصفية مصفوفة النظرة العامة في خلفيتك البرمجية.

  • المنطق: الفرز حسب lastMessage.timestamp (تنازلياً) وتمييز أي صف يكون فيه unreadCount > 0.

⚠️ اعتبارات هامة

  • اتساق JID: استخدم دائماً معرف JID كاملاً عند الربط بين هذه البيانات ونقاط النهاية الأخرى.
  • المحادثات المؤرشفة: بشكل افتراضي، تتضمن النظرة العامة المحادثات النشطة. لرؤية السلاسل المؤرشفة، قد تحتاج إلى استخدام /v2/chats/list للبحث الشامل.
  • معاينات الوسائط: سيظهر lastMessage.body نسخة نصية مختصرة لرسائل الوسائط (مثل "📷 صورة" أو "📄 مستند"). يجب أن تتعامل واجهتك مع هذه السلاسل بجمالية من خلال إضافة الأيقونات المقابلة.

البارامترات

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

بارامترات الرابط

جزء من مسار الرابط أو استعلام
string

Your unique WhatsApp Instance ID

مثال:
string

Your API Access Token

مثال:

أمثلة الكود

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

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

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

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

Overview retrieved successfully.
النوع:
السيناريو:
application/json
object *

Example

{
"0": {
  "id": "201234567890@c.us",
  "name": "John Doe",
  "unreadCount": 5,
  "lastMessage": {
    "id": "ABC123",
    "body": "Hello!",
    "timestamp": 1722170400
    }
  }
}
طلب غير صالح - معاملات مطلوبة مفقودة
غير مصرح - مفتاح الوصول غير صالح أو مفقود
غير موجود - الجلسة غير موجودة
خطأ في الخادم الداخلي - فشل غير متوقع
بوابة غير صالحة - فشل الاتصال بالخادم الرئيسي
الموضوع السابققائمة المحادثات ونظرة عامة
الموضوع التاليالحصول على صورة المحادثة

Command Palette

Search for a command to run...