نظرة عامة على الإشعارات الفورية

نظرة عامة على الإشعارات الفورية وسبب استخدامها وطريقة عملها

ما هي الإشعارات الفورية؟

تتيح لك الرسائل الفورية لفت انتباه المستخدِمين إلى المعلومات حتى عندما لا يستخدمون موقعك الإلكتروني. وتُعرف هذه الرسائل باسم الرسائل الفورية لأنّه يمكنك "إرسال" المعلومات إلى المستخدمين حتى إذا كانوا غير نشطين. قارِن بين تكنولوجيا الدفع العميق وتكنولوجيا الجذب العميق لفهم هذا المفهوم بشكلٍ أفضل.

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

أمثلة على الإشعارات على نظامَي التشغيل macOS وAndroid
أمثلة على الإشعارات على نظامَي التشغيل macOS وAndroid

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

مزايا استخدام الإشعارات الفورية

  • بالنسبة إلى المستخدمين، تُعد الإشعارات الفورية طريقة للحصول على معلومات في الوقت المناسب وذات صلة ودقيقة.
  • بالنسبة إليك (مالك الموقع الإلكتروني)، تُعد الإشعارات الفورية طريقة لزيادة تفاعل العميل.

كيف تعمل الإشعارات الفورية؟

في المستويات العليا، تتلخّص الخطوات الرئيسية لتنفيذ الإشعارات الفورية في ما يلي:

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

تشرح بقية هذه الصفحة هذه الخطوات بشكل أكثر تفصيلاً.

الحصول على إذن لإرسال إشعارات فورية

أولاً، يجب أن يحصل موقعك الإلكتروني على إذن المستخدم لإرسال إشعارات فورية. يجب أن يتم تشغيل هذا الإجراء من خلال إيماءة المستخدم، مثل النقر على زر نعم بجانب طلب Do you want to receive push notifications?. بعد تأكيد ذلك، يُرجى الاتصال بالرقم Notification.requestPermission(). من المحتمل أن يعرض نظام التشغيل أو المتصفح على جهاز المستخدم نوعًا من واجهة المستخدم لتأكيد رغبة المستخدم في تفعيل الإشعارات الفورية بشكل رسمي. تختلف واجهة المستخدم هذه من منصة إلى أخرى.

إشراك العميل في ميزة الإشعارات الفورية

بعد الحصول على الإذن، يجب أن يبدأ موقعك الإلكتروني عملية إشتراك المستخدم في الإشعارات الفورية. ويتم ذلك من خلال JavaScript، باستخدام Push API. عليك تقديم مفتاح مصادقة علني أثناء عملية الاشتراك، وسنوضّح لك المزيد من المعلومات حول ذلك لاحقًا. بعد بدء عملية الاشتراك، يُرسِل المتصفّح طلب شبكة إلى خدمة ويب تُعرف باسم خدمة الدفع الفوري، وسنوضّح لك المزيد من المعلومات عنها لاحقًا.

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

الحصول على إذن لإرسال الرسائل الفورية احصل على PushSUBSCRIPTION. أرسِل
PushSubscription إلى خادمك.

إرسال رسالة فورية

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

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

عادةً ما يتم تقديم طلب بروتوكول الإشعارات الفورية على الويب من خلال خادم تتحكم فيه. بالطبع، ليس على خادمك إنشاء طلب خدمة الويب الأوّلي بنفسه. وتوجد مكتبات يمكنها معالجة هذا الأمر نيابةً عنك، مثل web-push-libs. ولكن الآلية الأساسية هي طلب خدمة ويب عبر HTTP.

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

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

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

ومع ذلك، عليك التأكّد من إرسال طلب بروتوكول دفع الإشعارات على الويب إلى خدمة الإشعارات الصحيحة. إنّ بيانات PushSubscription التي عرضها لك المتصفّح أثناء عملية الاشتراك هذه المعلومات. يظهر عنصر PushSubscription على النحو التالي:

{
  "endpoint": "https://fcm.googleapis.com/fcm/send/c1KrmpTuRm…",
  "expirationTime": null,
  "keys": {
    "p256dh": "BGyyVt9FFV…",
    "auth": "R9sidzkcdf…"
  }
}

إنّ نطاق endpoint هو خدمة الإرسال بشكل أساسي. مسار العنصر endpoint هو معلومات معرّف العميل التي تساعد خدمة الإشعارات الفورية في تحديد العميل الذي سيتم إرسال الرسالة إليه بالضبط.

يتم استخدام keys للتشفير، وسيتم توضيح ذلك لاحقًا.

تشفير رسالة الإشعار الفوري

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

توقيع طلبات بروتوكول إشعارات الويب

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

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

  • يمكنك إنشاء المفتاحَين الخاص والعام كمهمة لمرة واحدة. يُعرف المزيج بين المفتاحَين الخاص والعام باسم مفاتيح خادم التطبيق. وقد تُعرف أيضًا باسم مفاتيح VAPID . VAPID هو المواصفة التي تحدّد عملية المصادقة هذه.
  • عندما تُشترِك في برنامج لتلقّي الإشعارات الفورية من رمز JavaScript، عليك تقديم مفتاحك العام. عندما تنشئ خدمة الإرسال الفوري endpoint للجهاز، فإنّها تربط المفتاح العام المقدَّم بالendpoint.
  • عندما ترسل طلب بروتوكول دفع على الويب، فإنك توقّع بعض معلومات JSON باستخدام مفتاحك الخاص.
  • عندما تتلقّى خدمة الإشعارات الفورية طلب بروتوكول الإشعارات الفورية على الويب، تستخدِم المفتاح العام المخزَّن لمصادقة المعلومات الموقَّعة. إذا كان التوقيع صالحًا، تعرف خدمة الإرسال الفوري على أنّ الطلب وارد من خادم يتضمّن المفتاح الخاص المطابق.

تخصيص طريقة إرسال الرسالة الفورية

تحدِّد مواصفات طلب بروتوكول الدفع على الويب أيضًا مَعلمات تتيح لك تخصيص كيفية محاولة خدمة الدفع على الويب إرسال رسالة الدفع إلى العميل. على سبيل المثال، يمكنك تخصيص ما يلي:

  • مدة البقاء (TTL) للرسالة، والتي تحدّد المدة التي يجب أن تحاول فيها خدمة الإرسال المباشر إرسال الرسالة
  • إلحاح الرسالة، وهو أمر مفيد في حالة الحفاظ على عمر بطارية العميل من خلال إرسال رسائل ذات أولوية عالية فقط.
  • موضوع الرسالة، والذي يستبدل أي رسائل معلقة لنفس الموضوع بأحدث رسالة.

تلقّي الرسائل المُرسَلة كإشعارات وعرضها

بعد إرسال طلب بروتوكول إشعارات الويب إلى خدمة الإشعارات الفورية، تبقي خدمة الإشعارات الفورية طلبك في قائمة الانتظار إلى أن يحدث أحد الحدثَين التاليَين:

  1. يتصل العميل بالإنترنت وتُرسِل خدمة الإشعارات الفورية رسالة الإشعار الفوري.
  2. تنتهي صلاحية الرسالة.

عندما يتلقّى متصفّح العميل رسالة مُرسَلة، يفكّ ترميز بيانات الرسالة المُرسَلة ويُرسِل حدث push إلى خدمة العمل. مشغّل الخدمة هو في الأساس رمز JavaScript يمكن تشغيله في الخلفية، حتى عندما يكون موقعك الإلكتروني غير مفتوح أو يكون المتصفّح مغلقًا. في push معالج حدث worker ، يمكنك استدعاء ServiceWorkerRegistration.showNotification() لعرض المعلومات كإشعار.

تصل الرسالة إلى الجهاز. يوقِظ المتصفّح مشغّل الخدمة. تم إرسال حدث الدفع.

الخطوات التالية

الدروس التطبيقية حول الترميز