نظرة عامة على الإشعارات الفورية وسبب استخدامها وآلية عملها
ما هي الإشعارات الفورية؟
تتيح لك الرسائل الفورية لفت انتباه المستخدِمين إلى المعلومات حتى عندما لا يستخدمون موقعك الإلكتروني. وتُعرف هذه الرسائل باسم الرسائل الفورية لأنّه يمكنك "إرسال" المعلومات إلى المستخدمين حتى إذا كانوا غير نشطين. قارِن بين تكنولوجيا الدفع العميق وتكنولوجيا الجذب العميق لفهم هذا المفهوم بشكلٍ أفضل.
تقدّم الإشعارات للمستخدم أجزاء صغيرة من المعلومات. يمكن للمواقع الإلكترونية استخدام الإشعارات لإعلام المستخدمين بالأحداث أو الإجراءات العميقة الأهمية أو الحسّاسة للوقت التي يحتاج المستخدمون إلى اتّخاذها. يختلف شكل الإشعارات وأسلوبها من نظام أساسي إلى آخر:
الرسائل الفورية والإشعارات هما تقنيتان منفصلتان ولكنهما متكاملتان. تقنية الإشعارات الفورية هي تقنية لإرسال الرسائل من خادمك إلى المستخدمين حتى إذا لم يكونوا يستخدمون موقعك الإلكتروني بشكل نشط. الإشعارات هي التكنولوجيا التي تُستخدَم لعرض المعلومات المُرسَلة على جهاز المستخدم. من الممكن استخدام الإشعارات بدون رسائل فورية. قد يكون من الممكن في يوم من الأيام أيضًا استخدام الرسائل الفورية بدون إشعارات موجّهة للمستخدم (الرسائل الفورية الصامتة)، ولكن لا تسمح المتصفّحات حاليًا بذلك. من الناحية العملية، يتم استخدامهما معًا عادةً. من المحتمل أن لا يفهم المستخدم غير التقني الفرق بين الرسائل والتحذيرات المرسَلة فورًا. في هذه المجموعة، عندما نقول الإشعارات الفورية، نقصد بذلك عملية إرسال رسالة ثم عرضها كإشعار. عندما نقول الرسائل الفورية، نشير إلى تكنولوجيا الرسائل الفورية بحد ذاتها. وعندما نقول الإشعارات نشير إلى تكنولوجيا الإشعارات بحد ذاتها.
مزايا استخدام الإشعارات الفورية
- بالنسبة إلى المستخدمين، تُعد الإشعارات الفورية طريقة للحصول على معلومات في الوقت المناسب وذات صلة ودقيقة.
- بالنسبة إليك (مالك الموقع الإلكتروني)، تُعد الإشعارات الفورية طريقة لزيادة تفاعل العميل.
كيف تعمل الإشعارات الفورية؟
في المستويات العليا، تتلخّص الخطوات الرئيسية لتنفيذ الإشعارات الفورية في ما يلي:
- إضافة منطق العميل لطلب الإذن من المستخدم لإرسال إشعارات فورية، ثم إرسال معلومات معرّف العميل إلى خادمك لتخزينها في قاعدة بيانات
- إضافة منطق الخادم لدفع الرسائل إلى أجهزة العملاء
- إضافة منطق العميل لتلقّي الرسائل التي تم دفعها إلى الجهاز وعرضها كإشعارات
توضّح بقية هذه الصفحة هذه الخطوات بمزيد من التفصيل.
الحصول على إذن لإرسال إشعارات فورية
أولاً، يجب أن يحصل موقعك الإلكتروني على إذن المستخدم لإرسال إشعارات فورية.
يجب أن يتم تشغيل هذا الإجراء من خلال إيماءة المستخدم، مثل النقر على زر نعم بجانب Do you want to receive push notifications?
. بعد تأكيد ذلك،
يُرجى الاتصال بالرقم Notification.requestPermission()
. من المحتمل أن يعرض نظام التشغيل أو
المتصفح على جهاز المستخدم نوعًا من واجهة المستخدم لتأكيد رغبة
المستخدم في تفعيل الإشعارات الفورية بشكل رسمي. تختلف واجهة المستخدم هذه من منصة إلى أخرى.
اشتراك العميل في خدمة تلقّي الإشعارات الفورية
بعد الحصول على الإذن، يجب أن يبدأ موقعك الإلكتروني عملية اشتراك المستخدم في الإشعارات الفورية. ويتم ذلك من خلال JavaScript، باستخدام Push API. عليك تقديم مفتاح مصادقة علني أثناء عملية الاشتراك، وسنوضّح لك المزيد من المعلومات عن ذلك لاحقًا. بعد بدء عملية الاشتراك، يُرسِل المتصفّح طلب شبكة إلى خدمة ويب تُعرف باسم خدمة الدفع الفوري، وسنوضّح لك المزيد من المعلومات عنها لاحقًا.
بافتراض أنّ الاشتراك قد تم بنجاح، يعرض المتصفّح عنصرًا من نوع
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) للرسالة، والتي تحدّد المدة التي يجب أن تحاول فيها خدمة الإرسال المباشر إرسال الرسالة
- مدى إلحاح الرسالة، وهو مفيد في حال كانت خدمة الإرسال الفوري تحافظ على عمر بطارية العميل من خلال إرسال الرسائل ذات الأولوية العالية فقط.
- موضوع الرسالة الذي يستبدل أي رسائل في انتظار المراجعة للموضوع نفسه بالرسالة الأخيرة
تلقّي الرسائل المُرسَلة كإشعارات وعرضها
بعد إرسال طلب بروتوكول إشعارات الويب إلى خدمة الإشعارات الفورية، تبقي خدمة الإشعارات الفورية طلبك في قائمة الانتظار إلى أن يحدث أحد الحدثَين التاليَين:
- يتصل العميل بالإنترنت وتُرسِل خدمة الإشعارات الفورية رسالة الإشعار الفوري.
- تنتهي صلاحية الرسالة.
عندما يتلقّى متصفّح العميل رسالة مُرسَلة، يفكّ ترميز بيانات الرسالة المُرسَلة ويُرسِل حدث push
إلى خدمة
العمل. مشغّل الخدمة هو
في الأساس رمز JavaScript يمكن تشغيله في الخلفية، حتى عندما يكون موقعك الإلكتروني
غير مفتوح أو يكون المتصفّح مغلقًا. في معالج حدث push
لخدمة عامل الخدمة، يمكنك استدعاء ServiceWorkerRegistration.showNotification()
لعرض المعلومات كهي إشعار.
الخطوات التالية
- نظرة عامة على الإشعارات الفورية على الويب
- آلية عمل الإشعارات الفورية
- اشتراك مستخدم
- تجربة المستخدم في ما يتعلّق بالأذونات
- إرسال الرسائل باستخدام مكتبات Web Push
- Web Push Protocol
- معالجة أحداث الإشعارات الفورية
- عرض إشعار
- سلوك الإشعار
- نماذج الإشعارات الشائعة
- الأسئلة الشائعة حول الإشعارات الفورية
- المشاكل الشائعة والإبلاغ عن الأخطاء