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

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

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

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

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

أمثلة على الإشعارات على نظامَي التشغيل 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() لعرض المعلومات كإشعار.

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

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

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