إيقاف الجلسة

إغلاق محرك واتساب وتحرير الموارد.

POST
https://api.wawp.net/v2/session/stop?access_token=YOUR_ACCESS_TOKEN&instance_id=Your_Instance_ID

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

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

تسجيل الدخول
اختبار /v2/session/stop
POSTGET

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

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

توصيات

  • استخدم نقطة النهاية هذه لإيقاف الجلسة إذا علقت، ثم أعد تشغيلها.

  • قم بتنفيذ مؤقت خمول في تطبيقك لإيقاف الجلسات التي لم تستخدم لأكثر من 24 ساعة تلقائياً.

إدارة الموارد: الدليل الكامل لإيقاف الجلسة /v2/session/stop

تعد نقطة النهاية /v2/session/stop أداة حيوية لإدارة كفاءة نظامك وتوفير موارد الحوسبة. هي تمثل وضع الجلسة في "حالة سبات" (Hibernation)، حيث نقوم بإغلاق كافة العمليات النشطة وتحرير الذاكرة العشوائية (RAM) والمعالج (CPU) المخصصين لهذه النسخة، مع الحفاظ الكامل على سلامة بيانات المصادقة.


فلسفة "الإيقاف النظيف" مقابل "الحذف"

من المهم جداً التمييز بين الإيقاف (stop) والحذف (delete).

  • الإيقاف (stop): يحافظ على "شخصية" الجلسة. عندما تعيد تشغيلها لاحقاً، ستظل مرتبطة بنفس رقم الهاتف ولن تحتاج لمسح رمز QR جديد. هو إجراء مؤقت للصيانة وتوفير الموارد.
  • الحذف (delete): إجراء مدمر يمسح كل شيء.

لماذا يجب عليك استخدام الإيقاف بانتظام؟

  1. استقرار الأداء: الجلسات التي تعمل لأسابيع طويلة دون توقف قد تواجه أحياناً تسرباً في الذاكرة (Memory Leaks) بسبب طبيعة متصفح Headless Chrome. الإيقاف ثم التشغيل ينظف الذاكرة تماماً.
  2. الامتثال لقواعد واتساب: إبقاء الجلسة متصلة 24/7 بينما لا يوجد نشاط حقيقي قد يثير أحياناً أنظمة الرقابة الآلية لدى واتساب. الإيقاف في فترات الخمول الطويلة يحاكي السلوك البشري الطبيعي.

الأوركسترا التقنية: ماذا يحدث عند طلب الإيقاف؟

عند إرسال طلب إلى /v2/session/stop، يقوم نظام Wawp بالخطوات التالية:

  1. إيقاف الاستلام (Intercept Stop): نتوقف فوراً عن استقبال أي رسائل جديدة من خوادم واتساب.
  2. مزامنة البيانات (State Sync): نقوم بحفظ الحالة النهائية لقاعدة البيانات المحلية للتأكد من عدم فقدان أي "علامات قراءة" (Seen Marks) أو تعديلات أخيرة.
  3. قتل العمليات (Process Termination): نرسل إشارة SIGTERM للمتصفح الخفي لإغلاقه بشكل آمن.
  4. تحرير الحاوية: يتم وضع الحاوية البرمجية في حالة "متوقف"، مما يقلل استهلاك موارد الخادم المضيف إلى الصفر تقريباً.

استراتيجيات التشغيل الذكي

1. مؤقت الخمول (Idle Timeout)

أحد أفضل الأنماط المعمارية هو تنفيذ "مؤقت خمول" في تطبيقك. مثال: إذا لم يقم المستخدم بإرسال رسالة ولم يستقبل النظام أي رسالة لهذا المستخدم خلال آخر 12 ساعة، قم تلقائياً باستدعاء /v2/session/stop. هذا يضمن أن خوادمك تعمل دائماً بأقصى كفاءة للجلسات النشطة فعلياً.

2. الصيانة المجدولة

ننصح بجدولة عملية إيقاف وتشغيل (Stop -> Start) لجميع الجلسات مرة كل أسبوع في ساعات الفجر. هذا الإجراء البسيط يضمن تحديث كافة الكاشات (Caches) وحل أي مشاكل تقنية خفية قد تكون تراكمت.


الأمان والاعتبارات الهامة

تفادي فقدان البيانات

قبل استدعاء stop عبر الكود الخاص بك، تأكد من أنك قمت بمعالجة كافة أحداث الويب هوك (Webhooks) الواردة. في اللحظة التي تتوقف فيها الجلسة، لن تصلك أي تحديثات حتى يتم التشغيل مرة أخرى.

حالة الطوارئ

إذا واجهت جلسة "مجمدة" (Frozen) لا تستجيب لأوامر الإرسال ولا ترسل ويب هوك، فإن استدعاء /v2/session/stop هو الخطوة الأولى لاستعادة السيطرة. هو بمثابة "إعادة تعيين قسري" للبيئة البرمجية.


استكشاف الأخطاء (Troubleshooting)

الخطأ: "Instance is already stopped" (400)

هذا يعني أن الطلب وصل ولكن الجلسة ليست في حالة تشغيل. يمكنك تجاهل هذا الخطأ في نظامك لأنه يعني الوصول للنتيجة المطلوبة.

الخطأ: "Stop request timed out"

في حالات نادرة، قد يرفض متصفح Chrome الإغلاق بسبب عملية معلقة. إذا حدث هذا، انتظر 30 ثانية ثم حاول مرة أخرى. نظامنا يمتلك "قاتل عمليات" تلقائي يعمل في الخلفية لمعالجة هذه الحالات.


قائمة التحقق للإيقاف الناجح:

  1. تحقق أن الحالة الحالية هي WORKING أو SCAN_QR_CODE أو STARTING.
  2. استدعِ /v2/session/stop.
  3. راقب الحالة عبر /v2/session/info حتى تصبح STOPPED.
  4. اعرض حالة "غير متصل" أو "في وضع السبات" لمستخدمك النهائي.

البارامترات

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

محتوى الطلب

يرسل كـ JSON
string

معرف النسخة الفريد

مثال:
string

مفتاح الوصول الخاص بـ API

مثال:

أمثلة الكود

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

1const baseUrl = "https://api.wawp.net";
2const endpoint = "/v2/session/stop";
3const params = new URLSearchParams({
4 "instance_id": "Your_Instance_ID",
5 "access_token": "YOUR_ACCESS_TOKEN"
6}).toString();
7
8
9fetch(`${baseUrl}${endpoint}${params ? '?' + params : ''}`, {
10 method: "POST",
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) مع أمثلة للبيانات لتسهيل معالجة الأخطاء والنجاح.

تم إيقاف الجلسة بنجاح
النوع:
application/json
string *
string *
object *

Example

{
"name": "wawp-84729105",
"status": "STOPPED",
"config": {
  "webhooks": {
    },
  "proxy": null
  }
}
طلب غير صالح - معاملات مطلوبة مفقودة
غير مصرح - مفتاح الوصول غير صالح أو مفقود
غير موجود - الجلسة غير موجودة
خطأ في الخادم الداخلي - فشل غير متوقع
بوابة غير صالحة - فشل الاتصال بالخادم الرئيسي
الموضوع السابقبدء الجلسة
الموضوع التاليإعادة تشغيل الجلسة

Command Palette

Search for a command to run...