جهات الاتصال

/v1/contacts

استخدم العقدة contacts لإدارة مستخدمي واتساب في قاعدة بياناتك من خلال التحقق منهم قبل إرسال الرسائل، والتحقق من صحة هوية المستخدم باستخدام خوارزميات تجزئة الهوية.

باستخدام العقدة contacts، يمكنك:

  • التحقق من أن رقم الهاتف الموجود في قاعدة بياناتك ينتمي إلى حساب واتساب صالح. يجب التأكد من أن status تتوفر بالقيمة valid قبل أن تتمكن من إرسال رسالة إلى المستخدم.
  • الحصول على معرف واتساب المرتبط برقم هاتف محدد. يلزم توفير معرفات واتساب لإرسال الرسائل وإشعارات المستخدم.

بدءً من الإصدار 2.39.1، يمكن استخدام العقدة messages مباشرةً مع رقم هاتف، دون الحاجة إلى تحويله أولاً إلى معرف واتساب باستخدام العقدة contacts.

تتم إعادة توظيف العقدة contacts بدءًا من الإصدار 2.43 بحيث لا توفر معلومات الحالة حول رقم هاتف بعد الآن. بغض النظر عما إذا كان المستخدم لديه حساب واتساب، سيتم دائمًا إرجاع القيمة valid لـ status في الاستجابة وwa_id.

قبل البدء

احرص على توفير خيار لعملائك يتيح لهم الاشتراك للتواصل مع نشاطك التجاري عن طريق واتساب. تتم المحافظة على تدفق الاشتراك هذا من جانب نشاطك التجاري. بمجرد أن يشترك العميل، استخدم العقدة contacts للتحقق من الرقم المسجّل. لمزيد من المعلومات، راجع التعرف على كيفية الاشتراك للتواصل في واتساب.

التقييدات

  • استخدام نقطة النهاية هذه للتحقق من أن رقم الهاتف المتوفر في قاعدة بيانات النشاط التجاري ينتمي إلى حساب واتساب صالح
  • يجب ألا يتخطى عدد الاستدعاءات عدد الرسائل التي يرسلها رقم الهاتف

الإنفاذ

إذا كان النشاط التجاري يُسيء استخدام نقطة النهاية، فسيتم اتخاذ الإجراءات التالية:

  • سيتلقى كل المسؤولين المدرجين في مدير الأعمال تحذيرًا مبدئيًا عبر البريد الإلكتروني إذا تم الاشتباه في وجود إساءة استخدام
  • سيكون لدى النشاط التجاري سبعة أيام بعد تلقي التحذير لتعديل سلوكه
  • إذا لم يتم تعديل الاستدعاءات بعد مرور سبعة أيام، فسيتم تعطيل رقم الهاتف بشكل دائم

التوصيات

نوصي بالتحقق من جهات الاتصال قبل إرسال الرسائل، ومع ذلك لا تحتاج إلى التحقق من جهات الاتصال عند الاستجابة لرسائل العملاء الواردة، حيث يمكنك الاستجابة على الفور باستخدام wa_id المتوفر. لا توجد تكلفة إضافية نظرًا لأنه يتم تخزين النتائج مؤقتًا.

الإنشاء

قبل إرسال الرسائل إلى المستخدمين الذين اشتركوا، أرسل طلب POST إلى نقطة النهاية /v1/contacts لإنشاء طلب التحقق من مستخدم حساب واتساب. في الاستدعاء، قم بتضمين قائمة بأرقام الهواتف التي تريد التحقق منها.

مثال

POST /v1/contacts
{
  "blocking": "wait" | "no_wait",
  "contacts": [
  	"16315551000",
  	"+1 631 555 1001",
  	"6315551002",
  	"+1 (631) 555-1004",
  	"1-631-555-1005"
  ],
  "force_check": false | true
}

ستتلقى استجابة تتضمن status الحالية للأرقام المطلوبة ومعرفات واتساب المرتبطة بها (wa_id):

{
  "contacts": [ {
    "wa_id": "16315551000",
    "input": "16315551000",
    "status": "valid"
  },
  {
    "wa_id": "16315551001",
    "input": "+1 631 555 1001",
    "status": "processing" # Only applicable when request is non-blocking
  },
  {
    "input": "6315551002",
    "status": "invalid"
  },
  {
    "input": "+163155588",
    "status": "failed"
  }
}

احفظ معرفات واتساب المرتبطة بتلك الأرقام التي تقوم بإرجاع status بالقيمة valid. المستخدمون الصالحون هم أولئك الذين لديهم حساب على واتساب. استخدم معرفات واتساب لإرسال الرسائل والإشعارات.

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

المعلمات

يتم دعم المعلمات التالية لإجراء استدعاءات POST إلى /v1/contacts:

الاسم الوصف

blocking

اختياري.

تشير إلى ما إذا كان يجب على الطلب الانتظار حتى تكتمل المعالجة أم لا قبل إرجاع الاستجابة. لمزيد من المعلومات، اقرأ قسم الحظر أدناه.


القيم الممكنة:no_wait (افتراضية)، wait

contacts

مطلوب.

مصفوفة أرقام الهواتف التي تتحقق منها.


يمكن أن تتوفر الأرقام بأي تنسيق قياسي مُستخدم لأرقام الهواتف. يبدأ التنسيق الموصى به لأرقام هواتف جهات الاتصال بعلامة الجمع (+) وكود البلد. لمزيد من المعلومات، راجع القسم تنسيقات رقم الهاتف أدناه.

force_check

اختياري.

تشير إلى ما إذا كنت تريد التحقق من التخزين المؤقت لجهات الاتصال أم لا. عادةً ما يتم تخزين معلومات جهات الاتصال مؤقتًا لمدة 7 أيام. من خلال تعيين المعلمة force_check إلى القيمة true، سيتم تجاوز التخزين المؤقت لضمان إجراء عملية التحقق.


القيم الممكنة:false (افتراضية)، true

عناصر الربط

ترتبط عناصر الربط التالية بهذه العقدة:

عنصر الربطالوصف

/{user-whatsapp-id}/identity

استخدم عنصر الربط هذا لإدارة هويات المستخدمين. لمزيد من المعلومات، يمكنك الرجوع إلى التعرف على تغيير الهوية في واتساب للأعمال.

الحظر

يتوفر خياران للمعلمة blocking وهما: no_wait وwait. إذا لم يتم تحديد المعلمة blocking في أي استدعاء، فستتوفر بالقيمة no_wait افتراضيًا.

تحدد المعلمة blocking ما إذا كان ينبغي للطلب انتظار اكتمال عملية المعالجة (متزامن) أم لا (غير متزامن).

الإعدادالوصف

no_wait

يمثل عملية معالجة أرقام الهاتف غير المتزامنة.


قد تتضمن الاستجابة بعض الأرقام مع تعيين status على processing. إذا حدث ذلك، فنوصي باتباع الخطوات التالية:

  1. الحصول على استجابة تتضمن بعض الأرقام التي تم تحديدها بالحالة processing.
  2. إصدار طلب آخر للتحقق من جهات الاتصال يتضمن الأرقام التي تم تحديدها بالحالة processing.
  3. إذا تمت المعالجة في الطلب الجديد، فستحصل على حالة صحيحة لذلك الرقم (صالح أو غير صالح).
  4. إذا كنت لا تزال ترى الأرقام التي تم تحديدها بالحالة processing، فكرر الخطوة 2 حتى تتلقى إجابة لكل رقم.

wait

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

تنسيقات أرقام الهواتف

يمكن أن تكون أرقام الهواتف الموجودة في الطلب contacts بأي تنسيق يمكن الاتصال من خلاله.

في حالة عدم تضمين علامة الجمع (+) في بداية رقم الهاتف، يتم تحديد كود البلد باستخدام رقم الهاتف المسجّل ضمنه عميل API داخل المواقع في واتساب للأعمال لديك، وبالتالي لن تعمل أرقام الهواتف المرتبطة بأي كود بلد مختلف.

تتمثل أفضل ممارسة موصى بها في تحديد كود البلد دومًا مع رقم الهاتف ووضعه بوضوح في البداية بجانب علامة الجمع (+).

لاحظ أنه لا يزال بالإمكان استخدام كود البلد إذا كان الرقم بعد + غير صالح. يوصى بالتحقق من صحة أرقام الهواتف قبل استخدام API داخل المواقع للحصول على سلوك يمكن التنبؤ به.

فيما يلي أمثلة توضح هذا السلوك، على افتراض أنه تم تسجيل عميل API داخل المواقع في واتساب للأعمال برقم هاتف هندي (مما يعني أن كود البلد هو +91):

رقم الهاتفرقم الهاتف المترجم

"+1-631-555-1002"

"+16315551002"

"6315551002"

"+916315551002"

"1-631-555-1002"

"+9116315551002"

"+1 (516) 283-7151"

"+15162837151"

"+54 9 11 5612-1008"

"+5491156121008"

الحقول التي يتم إرجاعها

تحتوي حمولة بيانات استجابة contacts على المصفوفة نفسها التي تتضمن أرقام الهواتف المُرسلة في الطلب مع الخصائص input وstatus وwa_id:

الاسم الوصف

input

القيمة التي أرسلتها ضمن الحقل contacts في الطلب.

status

الإصدار 2.41 والإصدارات الأقدم

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


القيم الممكنة:

  • processing — لا يزال الإدخال قيد المعالجة
  • valid — مستخدم واتساب صالح
  • invalid — مستخدم واتساب غير صالح
  • failed — حدث خطأ أثناء معالجة عملية التحقق هذه

status

الإصدار 2.43 والإصدارات الأحدث

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


القيم الممكنة:

  • processing — لا يزال الإدخال قيد المعالجة
  • valid — اكتمل التحقق من جهة الاتصال ويمكن متابعة إرسال الرسالة
  • failed — حدث خطأ أثناء معالجة عملية التحقق هذه

wa_id

الإصدار 2.41 والإصدارات الأقدم

معرف مستخدم واتساب الذي يمكن استخدامه في إجراء الاستدعاءات الأخرى. لا يتم إرجاعه إلا إذا كانت status بالقيمة valid

wa_id

الإصدار 2.43 والإصدارات الأحدث

معرف مستخدم واتساب الذي تم إرجاعه والذي قد يكون صالحًا أو غير صالح

نظرًا لعدم وجود ضمان بأن القيمة ستكون صالح، يرجى الامتناع عن استخدام هذه القيمة في الاستدعاءات اللاحقة.

بالإضافة إلى الحالة processing، يجب أن تظهر حالة HTTP بالقيمة 200 OK.

إذا تم إرسال رسالة قالب إلى رقم الهاتف بدون توفر حساب واتساب، فستتلقى رسالة خطأ تشير إلى أن "المستخدم غير صالح" مع عرض رمز الخطأ 1013.

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

حظر جهات الاتصال

يمكن اعتبار الحظر ميزة دفاعية لإيقاف المحتالين من متابعة التصرفات الضارة. لحظر جهة اتصال، يجب أن تكون تلك الجهة قد أرسلت إليك رسالة في غضون الـ 24 ساعة الماضية.

مثال

أرسل استدعاء API إلى /v1/contacts/{phone_number}/block يتضمن سببًا لحظر حساب واتساب آخر.

POST /v1/contacts/+16315551000/block
{
   "reason": "Optional string(0;60). Freeform block reason. Will be used when another WhatsApp account is being blocked"
}

يكون للاستجابة الناجحة حالة HTTP 200 ولا يوجد كائن "للأخطاء".

تبدو الاستجابة الفاشلة على النحو التالي:

{   
    "errors": [
        {
            "code": 2048,
            "title": "Not engaged contact",
            "details": "Invalid Request. This contact hasn't engaged with you in the last 24 hrs."
        }
    ]
}

المعلمات

يتم دعم المعلمات التالية لإجراء استدعاءات POST إلى /v1/contacts/{phone_number}/block:

الإعدادالوصف

reason

اختياري.

سبب الحظر الحر. سيتم استخدامه عند حظر حساب واتساب آخر. يجب أن يكون أقل من 60 حرفًا.

phone_number

مطلوب.

يمكن أن تتوفر الأرقام بأي تنسيق قياسي مُستخدم لأرقام الهواتف. يبدأ التنسيق الموصى به لأرقام هواتف جهات الاتصال بعلامة الجمع (+) وكود البلد. لمزيد من المعلومات، راجع تنسيقات رقم الهاتف.

إلغاء حظر جهات الاتصال

قم بإجراء هذه المكالمة لإلغاء حظر جهة اتصال

مثال

أرسل استدعاء API إلى /v1/contacts/{phone_number}/unblock

POST /v1/contacts/+16315551000/unblock

يكون للاستجابة الناجحة حالة HTTP 200 ولا يوجد كائن "للأخطاء".

تبدو الاستجابة الفاشلة على النحو التالي:

{   
    "errors": [
        {
            "code": 1009,
            "title": "Parameter value is not valid",
            "details": "Provided WhatsApp ID is not valid. Please provide a valid WhatsApp ID or a phone number with a country code"
        }
    ]
}

المعلمات

يتم دعم المعلمات التالية لإجراء استدعاءات POST إلى /v1/contacts/{phone_number}/unblock:

الإعدادالوصف

phone_number

مطلوب.

يمكن أن تتوفر الأرقام بأي تنسيق قياسي مُستخدم لأرقام الهواتف. يبدأ التنسيق الموصى به لأرقام هواتف جهات الاتصال بعلامة الجمع (+) وكود البلد. لمزيد من المعلومات، راجع تنسيقات رقم الهاتف.

قائمة الحظر

هذه هي الطريقة التي تحصل بها على قائمة بجهات الاتصال المحظورة لديك.

مثال

أرسل استدعاء API إلى /v1/contacts/blocklist لاستلام قائمة مقسمة إلى صفحات تتضمن جهات الاتصال المحظورة لديك

GET /v1/contacts/blocklist?limit=10&offset=0

ستتلقى استجابة عبر صفحة تتضمن قائمة الحظر مع معلومات تقسيم الصفحات

{
   "contacts": [
       {
           "wa_id": "16315551000@s.whatsapp.net"
       }
   ],
   "pagination": {
       "limit": 10,
       "offset": 0,
       "total": 1
   }
}

المعلمات

يتم دعم المعلمات التالية لإجراء استدعاءات GET إلى /v1/contacts/blocklist:

الإعدادالوصف

limit

اختياري.

النطاق المقبول هو (0; 200]. الافتراضي: 100.

offset

اختياري.

الافتراضي: 0.

إعداد التقارير

توفر ميزة إعداد التقارير إشارات مهمة لإنشاء حل وقائي ضد المحتالين. قبل الإبلاغ عن جهة اتصال، يجب أن تكون تلك الجهة قد أرسلت إليك رسالة في غضون الـ 24 ساعة الماضية.

مثال

أرسل استدعاء API إلى /v1/contacts/{phone_number}/report يتضمن سببًا إذا كنت تحاول حظر حساب واتساب آخر.

POST /v1/contacts/+16315551000/block
{
   "reason": "Optional string(0;60). Freeform block reason. Will be used when another WhatsApp account is being blocked",
   "block": "true | false optional boolean with default of false",
   "message_id": "message-id. Optional reported message id"
}

يكون للاستجابة الناجحة حالة HTTP 200 ولا يوجد كائن "للأخطاء".

تبدو الاستجابة الفاشلة على النحو التالي:

{  
    "errors": [
        {
            "code": 2048,
            "title": "Not engaged contact",
            "details": "Invalid Request. This contact hasn't engaged with you in the last 24 hrs."
        }
    ]
}

المعلمات

يتم دعم المعلمات التالية لإجراء استدعاءات POST إلى /v1/contacts/{phone_number}/report:

الإعدادالوصف

reason

اختياري.

سبب الحظر الحر. سيتم استخدامه عند حظر حساب واتساب آخر. يجب أن يكون أقل من 60 حرفًا.

block

اختياري.

الافتراضي هو False.

ما إذا كان سيتم أيضًا حظر جهة الاتصال أو الإبلاغ عنها فقط.

message_id

اختياري.

معرف الرسالة الذي سيتم الإبلاغ عنه. في حالة عدم تحديد ذلك، فسيتم إرسال آخر 5 رسائل إلى واتساب.

phone_number

مطلوب.

يمكن أن تتوفر الأرقام بأي تنسيق قياسي مُستخدم لأرقام الهواتف. يبدأ التنسيق الموصى به لأرقام هواتف جهات الاتصال بعلامة الجمع (+) وكود البلد. لمزيد من المعلومات، راجع تنسيقات رقم الهاتف.