نظرة عامة على الإشعارات الفورية وأسباب استخدامها وطريقة عملها
ما هي الإشعارات الفورية؟
تتيح لك الرسائل الفورية لفت انتباه المستخدمين إلى المعلومات حتى عندما لا يتصفحّون موقعك الإلكتروني. ويُطلق عليها اسم الرسائل الفورية لأنّه يمكنك "إرسال" المعلومات إلى المستخدمين حتى عندما لا يكونون نشطين. لمزيد من المعلومات حول هذا المفهوم، يمكنك مقارنة تكنولوجيا الإرسال الفوري بتكنولوجيا الجلب .
تعرض الإشعارات أجزاء صغيرة من المعلومات للمستخدم. يمكن للمواقع الإلكترونية استخدام الإشعارات لإعلام المستخدمين بالأحداث المهمة والحسّاسة للوقت أو الإجراءات التي على المستخدم اتّخاذها. يختلف شكل الإشعارات وطريقة عرضها بين المنصات:
الرسائل الفورية والإشعارات هما تقنيتان منفصلتان ولكنّهما متكاملتان. تكنولوجيا الإرسال الفوري هي تكنولوجيا لإرسال الرسائل من الخادم إلى المستخدمين حتى عندما لا يتصفحّون موقعك الإلكتروني بنشاط. تكنولوجيا الإشعارات هي تكنولوجيا لعرض المعلومات التي تم إرسالها على جهاز المستخدم. يمكن استخدام الإشعارات بدون الرسائل الفورية. قد يصبح من الممكن أيضًا في يوم من الأيام استخدام الرسائل الفورية بدون إشعارات مرئية للمستخدمين (الإرسال الفوري الصامت)، ولكنّ المتصفحات لا تسمح بذلك حاليًا. في الواقع، يتم عادةً استخدامهما معًا. من المحتمل ألا يفهم المستخدم غير المتخصص الفرق بين الرسائل الفورية والإشعارات. في هذه المجموعة، عندما نقول الإشعارات الفورية ، فإننا نعني مزيجًا من إرسال رسالة ثم عرضها كإشعار. عندما نقول الرسائل الفورية ، فإننا نشير إلى تكنولوجيا الإرسال الفوري وحدها. وعندما نقول الإشعارات ، فإننا نشير إلى تكنولوجيا الإشعارات وحدها.
لماذا يجب استخدام الإشعارات الفورية؟
- بالنسبة إلى المستخدمين، تُعدّ الإشعارات الفورية طريقة لتلقّي معلومات في الوقت المناسب وذات صلة، ودقيقة.
- بالنسبة إليك (مالك الموقع الإلكتروني)، تُعدّ الإشعارات الفورية طريقة لزيادة تفاعل المستخدمين.
كيف تعمل الإشعارات الفورية؟
في ما يلي الخطوات الرئيسية لتنفيذ الإشعارات الفورية:
- إضافة منطق العميل لطلب إذن المستخدم بإرسال الإشعارات الفورية، ثم إرسال معلومات تعريف العميل إلى الخادم لتخزينها في قاعدة بيانات
- إضافة منطق الخادم لإرسال الرسائل إلى أجهزة العميل
- إضافة منطق العميل لتلقّي الرسائل التي تم إرسالها إلى الجهاز وعرضها كإشعارات
يوضّح الجزء المتبقي من هذه الصفحة هذه الخطوات بمزيد من التفصيل.
الحصول على إذن بإرسال الإشعارات الفورية
أولاً، على موقعك الإلكتروني الحصول على إذن المستخدم بإرسال الإشعارات الفورية.
يجب أن يتم ذلك من خلال إجراء تفاعلي من المستخدم، مثل النقر على الزر نعم بجانب الرسالة 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() لعرض المعلومات كإشعار.
الخطوات التالية
- نظرة عامة على الإشعارات الفورية على الويب
- طريقة عمل الإرسال الفوري
- الاشتراك في خدمة الإشعارات الفورية
- تجربة المستخدم للإذن
- إرسال الرسائل باستخدام مكتبات الإرسال الفوري على الويب
- بروتوكول الإرسال الفوري على الويب
- التعامل مع الرسائل
- عرض إشعار
- سلوك الإشعارات
- الأنماط الشائعة للإشعارات
- الأسئلة الشائعة حول الإشعارات الفورية
- المشاكل الشائعة والإبلاغ عن الأخطاء