أرقام الهواتف

يحدد هذا الدليل كيف يمكنك التحقق من رقم هاتفك والتنسيق المطلوب في API السحابة.

توجد معايير محددة حول نوع أرقام الهواتف التي يمكنك إضافتها إلى حساب واتساب للأعمال (WABA). يُرجى مراجعة أرقام الهاتف لمزيد من المعلومات.

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

التحقق من أرقام الهاتف

يتعين عليك التحقق من رقم الهاتف الذي تريد استخدامه لإرسال رسائل إلى عملائك. ويجب التحقق من أرقام الهواتف باستخدام الرمز الذي تم إرساله عبر رسالة SMS/مكالمة صوتية. كما يمكن إجراء عملية التحقق عبر استدعاءات واجهة Graph API المحددة أدناه.

للتحقق من رقم الهاتف باستخدام واجهة Graph API، يمكنك إرسال طلب POST إلى PHONE_NUMBER_ID/request_code. في الاستدعاء الذي تجريه، قم بتضمين أسلوب التحقق واللغة التي اخترتها.

نقطة النهايةالمصادقة

/PHONE_NUMBER_ID/request_code

يمكنك مصادقة حسابك باستخدام رمز وصول مستخدم النظام.


إذا كنت تطلب الرمز بالنيابة عن نشاط تجاري آخر، فيجب أن يتوفر لدى رمز الوصول إمكانية الوصول المتقدم إلى الإذن whatsapp_business_management.

المعلمات

الاسم الوصف (انقر على السهم في العمود الأيمن للتعرف على الخيارات المدعومة.)

code_method

string (سلسلة)

مطلوب.

أسلوب التحقق الذي اخترته.

الخيارات المدعومة

  • SMS
  • VOICE

language

string (سلسلة)

مطلوب.

رمز اللغة المكون من حرفين. على سبيل المثال: "en".

مثال

عينة من الطلب:

curl -X POST \
  'https://graph.facebook.com/v13.0/FROM_PHONE_NUMBER_ID/request_code' \
  -H 'Authorization: Bearer ACCESS_TOKEN' \
  -F 'code_method=SMS' 
  -F 'locale=en_US'

بعد تنفيذ استدعاء API، ستتلقى رمز التحقق عبر الأسلوب الذي حددته. لإنهاء عملية التحقق، يجب تضمين الرمز في طلب POST إلى PHONE_NUMBER_ID/verify_code.

نقطة النهاية المصادقة

/PHONE_NUMBER_ID/verify_code

يمكنك مصادقة حسابك باستخدام رمز وصول مستخدم النظام.


إذا كنت تطلب الرمز بالنيابة عن نشاط تجاري آخر، فيجب أن يتوفر لدى رمز الوصول إمكانية الوصول المتقدم إلى الإذن whatsapp_business_management.

المعلمات

الاسمالوصف

code

numeric string (سلسلة رقمية)

مطلوب.

الرمز الذي تلقيته بعد تنفيذ استدعاء FROM_PHONE_NUMBER_ID/request_code.

مثال

عينة من الطلب:

curl -X POST \
  'https://graph.facebook.com/v13.0/FROM_PHONE_NUMBER_ID/verify_code' \
  -H 'Authorization: Bearer ACCESS_TOKEN' \
  -F 'code=000000'

تظهر الاستجابة الناجحة على النحو التالي:

{
  "success": true
}

WhatsApp User Phone Number Formats

Plus signs (+), hyphens (-), parenthesis ((,)), and spaces are supported in send message requests.

We highly recommend that you include both the plus sign and country calling code when sending a message to a customer. If the plus sign is omitted, your business phone number's country calling code is prepended to the customer's phone number. This can result in undelivered or misdelivered messages.

For example, if your business is in India (country calling code 91) and you send a message to the following customer phone number in various formats:

Number In Send Message RequestNumber Message Delivered ToOutcome

+16315551234

+16315551234

Correct number

+1 (631) 555-1234

+16315551234

Correct number

(631) 555-1234

+916315551234

Potentially wrong number

1 (631) 555-1234

+9116315551234

Potentially wrong number

التحقق من تغيير الهوية

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

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

لاستخدام التجزئة، قم بتضمينها في طلب إرسال رسالة. سنقوم بمقارنة التجزئة في الطلب بتجزئة العميل الحالية. إذا كانت التجزئات مطابقة، فسيتم إرسال الرسالة. إذا كان هناك عدم تطابق، فهذا يعني أن العميل قام بتغيير الهوية منذ آخر مرة قمت فيها بمراسلته ولن نرسل الرسالة. بدلاً من ذلك، سنرسل لك حدث webhook حالة الرسالة يحتوي على رمز الخطأ 137000، لإعلامك بالفشل وعدم التطابق.

عند تلقي حدث webhook تجزئة غير مطابقة، من المرجح أن يكون رقم الهاتف لدى العميل لم يعد موثوقًا. لاستعادة الثقة، تحقق من هوية العميل مرة أخرى باستخدام قنوات أخرى غير واتساب. بمجرد استعادة الثقة، أعد إرسال الرسالة الفاشلة إلى الهوية الجديدة (إن وجدت)، بدون التجزئة. ثم احفظ تجزئة العميل الجديدة في حدث webhook إرسال حالة الرسالة.

بنية الطلب

أرسل طلب POST إلى نقطة النهاية رقم هاتف واتساب للأعمال > الإعدادات لتمكين إعداد التحقق من تغيير الهوية أو تعطيله.

POST /<WHATSAPP_BUSINESS_PHONE_NUMBER>/settings

نص المنشور

{
  "user_identity_change" : {
    "enable_identity_key_check": <ENABLE_IDENTITY_KEY_CHECK>
}

يتم تعيين <ENABLE_IDENTITY_KEY_CHECK> على true لتمكين التحقق من الهوية أو false لتعطيله.

مثال على تمكين الطلب

curl 'https://graph.facebook.com/v21.0/106850078877666/settings' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "user_identity_change": {
    "enable_identity_key_check": true
  }
}'

مثال على تمكين الاستجابة

{
  "success": true
}

مثال على إرسال الرسالة للتحقق

لن يتم إرسال مثال الرسالة هذا إلا إذا كانت قيمة التجزئة recipient_identity_key_hash تطابق تجزئة العميل الحالية.

curl 'https://graph.facebook.com/v21.0/106850078877666/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
    "messaging_product": "whatsapp",
    "recipient_type": "individual",
    "to": "+16505551234",
    "recipient_identity_key_hash": "DF2lS5v2W6x=",
    "type": "text",
    "text": {
        "preview_url": false,
        "body": "Your latest statement is attached. See... "
    }
}'

مثال على حدث Webhook الرسالة الواردة

في أحداث webhooks الرسالة الواردة، يتم تعيين تجزئة العميل على الخاصية identity_key_hash.

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "102290129340398",
      "changes": [
        {
          "value": {
            "messaging_product": "whatsapp",
            "metadata": {
              "display_phone_number": "15550051310",
              "phone_number_id": "106540352242922"
            },
            "contacts": [
              {
                "profile": {
                  "name": "Pablo Morales"
                },
                "wa_id": "16505551234",
                "identity_key_hash": "DF2lS5v2W6x="
              }
            ],
            "messages": [
              {
                "from": "16505551234",
                "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgASGBQzQUMyNTA4M0VGN0Q4RjdDNDVCMAA=",
                "timestamp": "1686591695",
                "text": {
                  "body": "Your latest statement is attached. See... "
                },
                "type": "text"
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

مثال على حدث Webhook حالة الإرسال

في أحداث webhooks حالة الإرسال، يتم تعيين تجزئة العميل على الخاصية recipient_identity_key_hash.

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "102290129340398",
      "changes": [
        {
          "value": {
            "messaging_product": "whatsapp",
            "metadata": {
              "display_phone_number": "15550051310",
              "phone_number_id": "106540352242922"
            },
            "statuses": [
              {
                "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJGODlDQjZBNjUxMUQ5NEU0MEUA",
                "status": "delivered",
                "timestamp": "1686591922",
                "recipient_id": "16505551234",
                "recipient_identity_key_hash": "DF2lS5v2W6x=",
                "conversation": {
                  "id": "6c84493f3de086c7c68d5a39248f72c0",
                  "origin": {
                    "type": "service"
                  }
                },
                "pricing": {
                  "billable": true,
                  "pricing_model": "CBP",
                  "category": "service"
                }
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

مثال على حدث Webhook حالة الإرسال الفاشلة

في أحداث webhooks حالة الإرسال، يتم تعيين تجزئة العميل على الخاصية recipient_identity_key_hash.

{
  "object": "whatsapp_business_account",
  "entry": [
    {
      "id": "102290129340398",
      "changes": [
        {
          "value": {
            "messaging_product": "whatsapp",
            "metadata": {
              "display_phone_number": "15550051310",
              "phone_number_id": "106540352242922"
            },
            "statuses": [
              {
                "id": "wamid.HBgLMTY1MDM4Nzk0MzkVAgARGBJDQzA0OEU4OTdEQUE5REVCQTgA",
                "status": "failed",
                "timestamp": "1686594665",
                "recipient_id": "16505551234",
                "errors": [
                  {
                    "code": 137000,
                    "title": "Confirm the correct Recipient Identity Key Hash or send without any identity key hash"
                  }
                ]
              }
            ]
          },
          "field": "messages"
        }
      ]
    }
  ]
}

الحصول على مستوى معدل الإرسال

استخدم نقطة النهاية رقم هاتف واتساب للأعمال للحصول على مستوى معدل الإرسال لدى رقم الهاتف الحالي:

GET /<WHATSAPP_BUSINESS_PHONE_NUMBER_ID>?fields=throughput