تحديث Webhook

تعديل رابط Webhook موجود على النسخة: تغيير الأحداث المشترك فيها، تفعيل/تعطيل التوصيل، أو تحديث سياسة إعادة المحاولة. (للمشتركين فقط)

PATCH
https://api.wawp.net/v2/webhook/update?access_token=YOUR_ACCESS_TOKEN&events=%5B%22message%22%2C+%22message.ack%22%2C+%22group.v2.update%22%5D&hmac=my-webhook-secret&instance_id=Your_Instance_ID&is_active=0&name=Updated+CRM&retries=%7B%22delay%22%3A+5%2C+%22attempts%22%3A+10%7D&url=https%3A%2F%2Fmy-app.com%2Fwebhook

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

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

تسجيل الدخول
اختبار /v2/webhook/update
PATCH
PATCH

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

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

توصيات

  • عندما تحتاج لإيقاف رابط مؤقتاً، استخدم التعطيل بدلاً من الحذف.

  • بعد تغيير الأحداث، تحقق من أن نقطة النهاية تتعامل مع أشكال الـ Payload الجديدة بشكل صحيح.

  • أبقِ Webhook النظام مفعّلاً مع حدث 'message' على الأقل إذا كنت تستخدم صندوق الوارد في Wawp.

تحديث Webhook: /v2/webhook/update

تتيح لك نقطة النهاية /v2/webhook/update تعديل رابط Webhook موجود دون استبدال قائمة الروابط بالكامل. يمكنك تغيير فلتر الأحداث، تفعيل أو تعطيل التوصيل، أو تعديل سياسة إعادة المحاولة.

[!IMPORTANT] هذه الميزة متاحة حصرياً للمشتركين في الباقات المدفوعة (Unlimited). محاولة الوصول إليها من حساب مجاني ستُرجع خطأ 403 Forbidden مع رمز subscription_required.


🎯 متى تستخدم هذه النقطة؟

استخدم هذه النقطة عندما تريد:

  • تفعيل أو تعطيل رابط Webhook مؤقتاً دون حذفه.
  • إضافة أو إزالة أحداث معينة من اشتراك Webhook.
  • تغيير سياسة إعادة المحاولة (delay و attempts) لرابط معين.

📦 جسم الطلب (Request Body)

  • url (مطلوب): رابط Webhook الموجود حالياً على النسخة بالضبط.
  • events (اختياري): مصفوفة الأحداث الجديدة. إذا لم تُرسل، تبقى القائمة الحالية.
  • is_active (اختياري): 1 لتفعيل الرابط أو 0 لتعطيله. إذا لم تُرسل، تبقى الحالة الحالية.
  • retries (اختياري): كائن سياسة إعادة المحاولة الجديدة. إذا لم تُرسل، تبقى السياسة الحالية.
  • hmac (اختياري): سر HMAC جديد. إذا لم تُرسل، يبقى السر الحالي.

🚀 الأحداث المتاحة

نفس قائمة الأحداث المستخدمة في لوحة تحكم Wawp:

الفئةالأحداث
الرسائلmessage, message.any, message.ack, message.ack.group, message.waiting, message.revoked, message.edited, message.reaction, poll.vote, poll.vote.failed
المجموعاتgroup.join, group.leave, group.v2.join, group.v2.leave, group.v2.update, group.v2.participants
الجلسة والمكالماتsession.status, state.change, presence.update, chat.archive, call.received, call.accepted, call.rejected
التسمياتlabel.upsert, label.deleted, label.chat.added, label.chat.deleted
متقدمevent.response

📡 عينات الطلبات

cURL

curl -X PATCH "https://api.wawp.net/v2/webhook/update"   -H "Content-Type: application/json"   -d '{
    "access_token": "YOUR_ACCESS_TOKEN",
    "instance_id": "Your_Instance_ID",
    "url": "https://my-app.com/webhook",
    "name": "Updated CRM",
    "events": ["message", "message.ack", "group.v2.update"],
    "is_active": 0
  }'

JavaScript (Fetch)

const res = await fetch('https://api.wawp.net/v2/webhook/update', {
  method: 'PATCH',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    access_token: 'YOUR_ACCESS_TOKEN',
    instance_id: 'Your_Instance_ID',
    url: 'https://my-app.com/webhook',
    events: ['message', 'message.ack', 'group.v2.update'],
    is_active: 0
  })
});
const data = await res.json();
console.log(data);

🛡️ Webhook النظام

يمكنك تحديث Webhook النظام (https://app.wawp.net/api/webhook/{token}) لتغيير الأحداث التي تُزامن إلى صندوق الوارد في Wawp. لا يمكن تغيير الرابط نفسه عبر هذه النقطة.

البارامترات

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

محتوى الطلب

يرسل كـ JSON
string

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

مثال:
string

مفتاح الوصول الخاص بك

مثال:
string

رابط Webhook الموجود حالياً على النسخة بالضبط

مثال:
string

اسم عرضي محدث للـ Webhook

مثال:
array

قائمة الأحداث المحدثة للاشتراك

مثال:
number

1 لتفعيل الرابط، 0 لتعطيله

مثال:
object

سياسة إعادة المحاولة المحدثة

مثال:
string

مفتاح HMAC المحدث للتحقق من الطلبات

مثال:

أمثلة الكود

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

1const baseUrl = "https://api.wawp.net";
2const endpoint = "/v2/webhook/update";
3const params = new URLSearchParams({
4 "instance_id": "Your_Instance_ID",
5 "access_token": "YOUR_ACCESS_TOKEN"
6}).toString();
7const body = {
8 "url": "https://my-app.com/webhook",
9 "name": "Updated CRM",
10 "events": [
11 "message",
12 "message.ack",
13 "group.v2.update"
14 ],
15 "is_active": "0",
16 "retries": {
17 "delay": 5,
18 "attempts": 10
19 },
20 "hmac": "my-webhook-secret"
21};
22
23fetch(`${baseUrl}${endpoint}${params ? '?' + params : ''}`, {
24 method: "PATCH",
25 headers: { "Content-Type": "application/json" },
26 body: JSON.stringify(body)
27})
28 .then(async (response) => {
29 if (response.ok) {
30 const data = await response.json();
31 console.log("Success:", data);
32 return data;
33 }
34
35 // Error Handling
36 if (response.status === 400) {
37 console.error("Error 400: طلب غير صالح - معاملات مطلوبة مفقودة");
38 }
39 if (response.status === 400) {
40 console.error("Error 400: طلب غير صالح (تنسيق XML)");
41 }
42 if (response.status === 400) {
43 console.error("Error 400: طلب غير صالح (نص عادي)");
44 }
45 if (response.status === 401) {
46 console.error("Error 401: غير مصرح - مفتاح الوصول غير صالح أو مفقود");
47 }
48 if (response.status === 401) {
49 console.error("Error 401: غير مصرح (تنسيق XML)");
50 }
51 if (response.status === 404) {
52 console.error("Error 404: غير موجود - الجلسة غير موجودة");
53 }
54 if (response.status === 404) {
55 console.error("Error 404: غير موجود (تنسيق XML)");
56 }
57 if (response.status === 500) {
58 console.error("Error 500: خطأ في الخادم الداخلي - فشل غير متوقع");
59 }
60 if (response.status === 500) {
61 console.error("Error 500: خطأ في الخادم الداخلي (HTML)");
62 }
63 if (response.status === 502) {
64 console.error("Error 502: بوابة غير صالحة - فشل الاتصال بالخادم الرئيسي");
65 }
66 if (response.status === 502) {
67 console.error("Error 502: بوابة غير صالحة (تنسيق XML)");
68 }
69
70 const errorText = await response.text();
71 console.error(`Error ${response.status}: ${errorText}`);
72 })
73 .catch((error) => console.error("Network Error:", error));
عينات تفاعلية
Ln 73, Col 1javascript

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

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

Success - Webhook Updated
النوع:
application/json
string *
string *
object *

Example

{
"status": "success",
"message": "Webhook updated successfully.",
"webhook": {
  "url": "https://my-app.com/webhook",
  "events": {
    "0": "message",
    "1": "message.ack",
    "2": "group.v2.update"
    },
  "is_active": 0,
  "enabled": false,
  "retries": {
    "delay": 5,
    "attempts": 10
    }
  }
}
طلب غير صالح - معاملات مطلوبة مفقودة
غير مصرح - مفتاح الوصول غير صالح أو مفقود
غير موجود - الجلسة غير موجودة
خطأ في الخادم الداخلي - فشل غير متوقع
بوابة غير صالحة - فشل الاتصال بالخادم الرئيسي
الموضوع السابقتعيين رابط Webhook
الموضوع التاليحذف رابط Webhook

Command Palette

Search for a command to run...