تم تغيير التسعير المستند إلى المحادثة. راجع التسعير لمعرفة كيفية عمل نموذج التسعير الجديد المستند إلى المحادثة.

بالإضافة إلى ذلك، تم تغيير رؤية metric_types اعتبارًا من 1 يوليو 2023. يرجى الرجوع إلى جدول تحليلات المحادثة لمزيد من التفاصيل.

رسائل القالب

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

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

يمكنك حاليًا إرسال أنواع القوالب التالية:

يجب مصادقة كل استدعاءات API المذكورة في هذا الدليل باستخدام رمز وصول. بإمكان المطوّرين مصادقة استدعاءات API باستخدام رمز الوصول الذي تم إنشاؤه في لوحة معلومات التطبيق > واتساب > لوحة إعداد API. يجب على شركاء الحلول مصادقة أنفسهم باستخدام رمز وصول يتضمن الإذن whatsapp_business_messaging.

معدل العرض

تخضع قوالب التسويق المنشأة حديثًا أو غير الموقوفة مؤقتًا إلى معدل عرض القوالب. راجع معدل عرض القوالب.

قوالب الرسائل المستندة إلى النص

لإرسال قالب رسالة مستند إلى نص، قم بتنفيذ استدعاء POST إلى /PHONE_NUMBER_ID/messages وإرفاق كائن رسالة بالنوع type=template. بعد ذلك، أضف كائن template.

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

curl -X  POST \
 'https://graph.facebook.com/v19.0/FROM_PHONE_NUMBER_ID/messages' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "PHONE_NUMBER",
  "type": "template",
  "template": {
    "name": "TEMPLATE_NAME",
    "language": {
      "code": "LANGUAGE_AND_LOCALE_CODE"
    },
    "components": [
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "text-string"
          },
          {
            "type": "currency",
            "currency": {
              "fallback_value": "VALUE",
              "code": "USD",
              "amount_1000": NUMBER
            }
          },
          {
            "type": "date_time",
            "date_time": {
              "fallback_value": "DATE"
            }
          }
        ]
      }
    ]
  }
}'

تتضمن الاستجابة الناجحة كائنًا يحتوي على معرف مسبوق بـ wamid. استخدم المعرف المُدرج بعد البادئة wamid لتتبع حالة رسالتك.

{
  "messaging_product": "whatsapp",
  "contacts": [{
      "input": "PHONE_NUMBER",
      "wa_id": "WHATSAPP_ID",
    }]
  "messages": [{
      "id": "wamid.ID",
    }]
}

قوالب الرسائل المستندة إلى الوسائط

لإرسال قالب رسالة مستند إلى وسائط، قم بتنفيذ استدعاء POST إلى /PHONE_NUMBER_ID/messages وإرفاق كائن رسالة بالنوع type=template. بعد ذلك، أضف كائن template. دعم تخزين HTTP المؤقت في الوسائط.

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

عند تحديد كائن الوسائط، يمكنك تحميل أصل الوسائط على الخوادم التي نوفرها واستخدام معرف الوسائط (باستخدام الخاصية id) أو استضافة الأصل على الخادم لديك واستخدام عنوان URL (باستخدام الخاصية link). إذا كنت تستخدم link، فيجب أن يكون الأصل متوفرًا على خادم قابل للوصول العام أو سيتعذر إرسال الرسالة.

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

يمكن أيضًا تخزين أصول الوسائط مؤقتًا. راجع تخزين الوسائط مؤقتًا من خلال HTTP.

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

curl -X  POST \
 'https://graph.facebook.com/v19.0/FROM_PHONE_NUMBER_ID/messages' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "PHONE_NUMBER",
  "type": "template",
  "template": {
    "name": "TEMPLATE_NAME",
    "language": {
      "code": "LANGUAGE_AND_LOCALE_CODE"
    },
    "components": [
      {
        "type": "header",
        "parameters": [
          {
            "type": "image",
            "image": {
              "link": "https://URL"
            }
          }
        ]
      },
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "TEXT-STRING"
          },
          {
            "type": "currency",
            "currency": {
              "fallback_value": "VALUE",
              "code": "USD",
              "amount_1000": NUMBER
            }
          },
          {
            "type": "date_time",
            "date_time": {
              "fallback_value": "MONTH DAY, YEAR"
            }
          }
        ]
      }
    ]
  }
}'

تتضمن الاستجابة الناجحة كائنًا يحتوي على معرف مسبوق بـ wamid. استخدم المعرف المُدرج بعد البادئة wamid لتتبع حالة رسالتك.

{
  "messaging_product": "whatsapp",
  "contacts": [{
      "input": "PHONE_NUMBER",
      "wa_id": "WHATSAPP_ID",
    }]
  "messages": [{
      "id": "wamid.ID",
    }]
}

قوالب الرسائل التفاعلية

تعمل قوالب الرسائل التفاعلية على توسيع نطاق المحتوى الذي يمكنك إرساله إلى المستلمين بخلاف أنواع قالب الرسالة القياسية وقالب رسائل الوسائط لتضمين الأزرار التفاعلية باستخدام كائن المكونات. هناك نوعان من الأزرار المحددة مسبقًا:

  • دعوة لاتخاذ إجراء — يتيح للعميل الاتصال برقم هاتف وزيارة موقع ويب.
  • الرد السريع — يتيح للعميل الرد من خلال رسالة نصية بسيطة.

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

لإرسال قالب رسالة تفاعلية، قم بتنفيذ استدعاء POST إلى /PHONE_NUMBER_ID/messages وإرفاق كائن رسالة بالنوع type=template. بعد ذلك، أضف كائن template مع button الذي اخترته.

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

curl -X  POST \
 'https://graph.facebook.com/v19.0/FROM_PHONE_NUMBER_ID/messages' \
 -H 'Authorization: Bearer ACCESS_TOKEN' \
 -H 'Content-Type: application/json' \
 -d '{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "PHONE_NUMBER",
  "type": "template",
  "template": {
    "name": "TEMPLATE_NAME",
    "language": {
      "code": "LANGUAGE_AND_LOCALE_CODE"
    },
    "components": [
      {
        "type": "header",
        "parameters": [
          {
            "type": "image",
            "image": {
              "link": "http(s)://URL"
            }
          }
        ]
      },
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "TEXT_STRING"
          },
          {
            "type": "currency",
            "currency": {
              "fallback_value": "VALUE",
              "code": "USD",
              "amount_1000": NUMBER
            }
          },
          {
            "type": "date_time",
            "date_time": {
              "fallback_value": "MONTH DAY, YEAR"
            }
          }
        ]
      },
      {
        "type": "button",
        "sub_type": "quick_reply",
        "index": "0",
        "parameters": [
          {
            "type": "payload",
            "payload": "PAYLOAD"
          }
        ]
      },
      {
        "type": "button",
        "sub_type": "quick_reply",
        "index": "1",
        "parameters": [
          {
            "type": "payload",
            "payload": "PAYLOAD"
          }
        ]
      }
    ]
  }
}'

تتضمن الاستجابة الناجحة كائنًا يحتوي على معرف مسبوق بـ wamid. استخدم المعرف المُدرج بعد البادئة wamid لتتبع حالة رسالتك.

{
  "messaging_product": "whatsapp",
  "contacts": [{
      "input": "PHONE_NUMBER",
      "wa_id": "WHATSAPP_ID",
    }]
  "messages": [{
      "id": "wamid.ID",
    }]
}

قوالب الرسائل المستندة إلى الموقع

لإرسال قالب يستخدم عنوان الموقع، يجب أن يتضمن الطلب كائن عنوان الموقع.

البنية

{
  "type": "header",
  "parameters": [
    {
      "type": "location",
      "location": {
        "latitude": "<LATITUDE>",
        "longitude": "<LONGITUDE>",
        "name": "<NAME>",
        "address": "<ADDRESS>"
      }
    }
  ]
}

الخصائص

العنصر النائبالوصفعينة من القيمة

<ADDRESS>

العنوان الذي سيظهر بعد القيمة <NAME>، أسفل الخريطة العامة الموجودة أعلى الرسالة.

1 Hacker Way, Menlo Park, CA 94025

<LATITUDE>

خط عرض الموقع.

37.483307

<LONGITUDE>

خط طول الموقع.

122.148981

<NAME>

النص الذي سيظهر على الفور أسفل الخريطة العامة الموجودة أعلى الرسالة.

Pablo Morales

مثال على الطلب

فيما يلي مثال على طلب إرسال قالب موجود يستخدم المكونات التالية:

  • عنوان موقع
  • نص أساسي يحتوي على متغير
  • تذييل
  • زر رد سريع
curl -L 'https://graph.facebook.com/v16.0/106540352242922/messages' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer EAAJB...' \
-d '
{
  "messaging_product": "whatsapp",
  "recipient_type": "individual",
  "to": "12245554792",
  "type": "template",
  "template": {
    "name": "order_delivery_update",
    "language": {
      "code": "en_US"
    },
    "components": [
      {
        "type": "header",
        "parameters": [
          {
            "type": "location",
            "location": {
              "latitude": "37.483307",
              "longitude": "122.148981",
              "name": "Pablo Morales",
              "address": "1 Hacker Way, Menlo Park, CA 94025"
            }
          }
        ]
      },
      {
        "type": "body",
        "parameters": [
          {
            "type": "text",
            "text": "Pablo"
          },
          {
            "type": "text",
            "text": "566701"
          }
        ]
      }
    ]
  }
}'

قوالب المصادقة

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

راجع قوالب المصادقة وإرسال قوالب المصادقة.

تسلسل تسليم الرسائل المتعددة

عند إرسال سلسلة من الرسائل، لا يمكن ضمان مطابقة ترتيب تسليم الرسائل مع ترتيب طلبات API. إذا كنت بحاجة إلى ضمان تسلسل تسليم الرسائل، فتأكد من تلقي حالة delivered في حدث webhook الرسائل قبل إرسال الرسالة التالية في تسلسل الرسائل.

تقييدات رسائل قالب التسويق لكل مستخدم

اعتبارًا من 6 فبراير 2024، سيتم تطبيق تقييدات رسائل قالب التسويق لكل مستخدم على رسائل القوالب المرسلة إلى عدد صغير من مستخدمي واتساب في الهند، ولكنها ستنطبق على جميع مستخدمي واتساب الذين لديهم رقم هاتف هندي بحلول 13 فبراير 2024.

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

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

إذا لم يتم تسليم رسالة قالب التسويق إلى مستخدم معين بسبب التقييد، فسترجع API رمز الخطأ 131026 وستقوم API داخل المواقع بإرجاع رمز الخطأ 1026. ومع ذلك، لاحظ أن رموز الأخطاء هذه تغطي نطاقًا واسعًا من المشكلات التي يمكن أن تؤدي إلى عدم تسليم الرسالة، ولأسباب تتعلق بالخصوصية، لن نكشف عما إذا كان لم يتم تسليم الرسالة بالفعل بسبب التقييد. يرجى الرجوع إلى مستند استكشاف الأخطاء وإصلاحها لـ Cloud API والرجوع إلى موضوع "لماذا لا يكون معدل التسليم لدي 100%؟" في API داخل المواقع الأسئلة المتكررة للحصول على وصف لأسباب عدم التسليم وما يمكنك فعله لتحديد السبب الأساسي لها.

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

سنواصل تحسين نهجنا ونقدر شراكتك بينما نستثمر في جعل تجربة واتساب أفضل لنشاطك التجاري وعملائك.

استكشاف الأخطاء وإصلاحها

إذا كنت تواجه مشكلات في تلقي الرسائل، فراجع الرسائل التي لم يتم تسليمها.