قبل التطرّق إلى واجهة برمجة التطبيقات، لنلقِ نظرة على الإشعارات الفورية من البداية إلى النهاية. بعد ذلك، عندما نتناول المواضيع أو واجهات برمجة التطبيقات الفردية لاحقًا، سيكون لديك فكرة عن كيفية وأهمية ذلك.
في ما يلي الخطوات الرئيسية الثلاث لتنفيذ الإشعارات الفورية:
- إضافة منطق من جهة العميل للاشتراك في الإشعارات الفورية (أي JavaScript وواجهة المستخدم في تطبيق الويب الذي يسجّل المستخدم لتلقّي الإشعارات الفورية).
- طلب البيانات من واجهة برمجة التطبيقات من الخلفية أو التطبيق الذي يؤدي إلى إرسال إشعار فوري إلى جهاز المستخدم.
- ملف JavaScript الخاص بعامل الخدمة الذي سيتلقّى "حدثًا فوريًا" عند وصول الإشعار الفوري إلى الجهاز. في ملف JavaScript هذا، ستتمكّن من عرض إشعار.
لنلقِ نظرة على ما تتضمّنه كل خطوة من هذه الخطوات بتفصيل أكبر قليلاً.
الخطوة 1: من جهة العميل
الخطوة الأولى هي "الاشتراك" في خدمة الرسائل الفورية.
يتطلّب اشتراك المستخدم أمرين. أولاً، الحصول على إذن من المستخدم لإرسال إشعارات فورية إليه. ثانيًا، الحصول على PushSubscription من المتصفّح.
يحتوي PushSubscription على جميع المعلومات التي نحتاج إليها لإرسال إشعار فوري إلى هذا المستخدم.
يمكنك التفكير في ذلك على أنّه "نوعًا ما" معرّف لجهاز هذا المستخدم.
يتم تنفيذ كل ذلك في JavaScript باستخدام Push API.
قبل الاشتراك في خدمة الإشعارات الفورية، عليك إنشاء مجموعة من "مفاتيح خادم التطبيق"، وسنتناولها لاحقًا.
تكون مفاتيح خادم التطبيق، المعروفة أيضًا باسم مفاتيح VAPID، فريدة لخادمك. تسمح هذه المفاتيح لخدمة الإشعارات الفورية بمعرفة خادم التطبيق الذي اشترك فيه المستخدم والتأكّد من أنّه الخادم نفسه الذي يؤدي إلى إرسال الإشعارات الفورية إلى هذا المستخدم.
بعد اشتراك المستخدم والحصول على PushSubscription، عليك إرسال تفاصيل PushSubscription إلى الخلفية أو الخادم. على خادمك، ستحفظ هذا الاشتراك في قاعدة بيانات وتستخدمه لإرسال إشعار فوري إلى هذا المستخدم.
الخطوة 2: إرسال إشعار فوري
عندما تريد إرسال إشعار فوري إلى المستخدمين، عليك إجراء طلب بيانات من واجهة برمجة التطبيقات إلى خدمة الإشعارات الفورية. سيتضمّن طلب البيانات من واجهة برمجة التطبيقات هذا البيانات التي سيتم إرسالها والمستخدمين الذين سيتم إرسال الرسالة إليهم وأي معايير حول كيفية إرسال الرسالة. عادةً ما يتم إجراء طلب البيانات من واجهة برمجة التطبيقات هذا من خادمك.
في ما يلي بعض الأسئلة التي قد تطرحها على نفسك:
- مَن هي خدمة الإشعارات الفورية وما هي؟
- كيف تبدو واجهة برمجة التطبيقات؟ هل هي JSON أو XML أو شيء آخر؟
- ما هي الإجراءات التي يمكن لواجهة برمجة التطبيقات تنفيذها؟
مَن هي خدمة الإشعارات الفورية وما هي؟
تتلقّى خدمة الإشعارات الفورية طلب شبكة وتتحقّق منه وتسلّم إشعارًا فوريًا إلى المتصفّح المناسب. إذا كان المتصفّح غير متصل بالإنترنت، يتم وضع الرسالة في قائمة الانتظار إلى أن يتصل المتصفّح بالإنترنت.
يمكن لكل متصفّح استخدام أي خدمة إشعارات فورية يريدها، ولا يمكن للمطوّرين التحكّم في ذلك. لا يمثّل ذلك مشكلة لأنّ كل خدمة إشعارات فورية تتوقّع طلب البيانات نفسه من واجهة برمجة التطبيقات. ما يعني أنّه ليس عليك الاهتمام بخدمة الإشعارات الفورية. عليك فقط التأكّد من أنّ طلب البيانات من واجهة برمجة التطبيقات صالح.
للحصول على عنوان URL المناسب لتفعيل إشعار فوري (أي عنوان URL لخدمة الإشعارات الفورية)، ما عليك سوى الاطّلاع على قيمة endpoint في PushSubscription.
في ما يلي مثال على القيم التي ستحصل عليها من PushSubscription:
{
"endpoint": "https://random-push-service.com/some-kind-of-unique-id-1234/v2/",
"keys": {
"p256dh": "BNcRdreALRFXTkOOUHK1EtK2wtaz5Ry4YfYCA_0QTpQtUbVlUls0VJXg7A8u-Ts1XbjhazAkj7I99e8QcYP7DkM=",
"auth": "tBHItJI5svbpez7KI4CCXg=="
}
}
في هذه الحالة، يكون نقطة النهاية هي https://random-push-service.com/some-kind-of-unique-id-1234/v2/. ستكون خدمة الإشعارات الفورية هي "random-push-service.com"، وكل نقطة نهاية فريدة لمستخدم، ويشار إليها بـ "some-kind-of-unique-id-1234". عندما تبدأ العمل على الإشعارات الفورية، ستلاحظ هذا النمط.
سيتم تناول المفاتيح في الاشتراك لاحقًا.
كيف تبدو واجهة برمجة التطبيقات؟
لقد ذكرتُ أنّ كل خدمة إشعارات فورية على الويب تتوقّع طلب البيانات نفسه من واجهة برمجة التطبيقات. واجهة برمجة التطبيقات هذه هي بروتوكول الإشعارات الفورية على الويب. وهو معيار IETF يحدّد كيفية إجراء طلب بيانات من واجهة برمجة التطبيقات إلى خدمة الإشعارات الفورية.
يتطلّب طلب البيانات من واجهة برمجة التطبيقات ضبط رؤوس معيّنة وأن تكون البيانات عبارة عن سلسلة من البايتات. سنلقي نظرة على المكتبات التي يمكنها إجراء طلب البيانات من واجهة برمجة التطبيقات هذا نيابةً عنّا، بالإضافة إلى كيفية إجراء ذلك بأنفسنا.
ما هي الإجراءات التي يمكن لواجهة برمجة التطبيقات تنفيذها؟
توفّر واجهة برمجة التطبيقات طريقة لإرسال رسالة إلى مستخدم، مع بيانات أو بدونها، وتوفّر تعليمات حول كيفية إرسال الرسالة.
يجب تشفير البيانات التي ترسلها مع إشعار فوري. والسبب في ذلك هو منع خدمات الإشعارات الفورية، التي يمكن أن تكون أي خدمة، من عرض البيانات المرسَلة مع الإشعار الفوري. هذا مهم لأنّ المتصفّح هو الذي يقرّر خدمة الإشعارات الفورية التي سيتم استخدامها، ما قد يفتح الباب أمام المتصفّحات لاستخدام خدمة إشعارات فورية غير آمنة أو غير محمية.
عندما تؤدي إلى إرسال إشعار فوري، ستتلقّى خدمة الإشعارات الفورية طلب البيانات من واجهة برمجة التطبيقات وتضع الرسالة في قائمة الانتظار. ستظل هذه الرسالة في قائمة الانتظار إلى أن يتصل جهاز المستخدم بالإنترنت ويتمكّن من تسليم الرسائل. تحدّد التعليمات التي يمكنك تقديمها إلى خدمة الإشعارات الفورية كيفية وضع الإشعار الفوري في قائمة الانتظار.
تتضمّن التعليمات تفاصيل مثل:
مدة بقاء الإشعار الفوري. يحدّد هذا الإعداد المدة التي يجب أن تبقى فيها الرسالة في قائمة الانتظار قبل إزالتها وعدم تسليمها.
تحديد مدى إلحاح الرسالة. يكون هذا الإعداد مفيدًا في حال كانت خدمة الإشعارات الفورية تحافظ على عمر بطارية المستخدمين من خلال تسليم الرسائل ذات الأولوية العالية فقط.
منح الإشعار الفوري اسم "موضوع" سيحل محل أي رسالة معلّقة بهذه الرسالة الجديدة.
الخطوة 3: حدث الإشعار الفوري على جهاز المستخدم
بعد إرسال إشعار فوري، ستحتفظ خدمة الإشعارات الفورية بالرسالة على خادمها إلى أن يحدث أحد الأحداث التالية:
- اتصال الجهاز بالإنترنت وتسليم خدمة الإشعارات الفورية للرسالة.
- انتهاء صلاحية الرسالة. في حال حدوث ذلك، ستزيل خدمة الإشعارات الفورية الرسالة من قائمة الانتظار ولن يتم تسليمها أبدًا.
عندما تسلّم خدمة الإشعارات الفورية رسالة، سيتلقّى المتصفّح الرسالة ويفك تشفير أي بيانات ويرسل حدث push في عامل الخدمة.
عامل الخدمة هو ملف JavaScript"خاص" . يمكن للمتصفّح تنفيذ ملف JavaScript هذا بدون فتح صفحتك. يمكنه حتى تنفيذ ملف JavaScript هذا عند إغلاق المتصفّح. يحتوي عامل الخدمة أيضًا على واجهات برمجة تطبيقات، مثل الإشعارات الفورية، غير متاحة في صفحة الويب (أي واجهات برمجة التطبيقات غير المتاحة خارج نص برمجة عامل الخدمة).
يمكنك تنفيذ أي مهام في الخلفية داخل حدث "الإشعار الفوري" لعامل الخدمة. يمكنك إجراء طلبات بيانات من "إحصاءات Google"، وتخزين الصفحات مؤقتًا بدون اتصال بالإنترنت، وعرض الإشعارات.
هذا هو التدفق الكامل للرسائل الفورية.
الخطوات التالية
- نظرة عامة على الإشعارات الفورية على الويب
- كيفية عمل الإشعارات الفورية
- الاشتراك في خدمة الإشعارات الفورية
- تجربة المستخدم للحصول على الإذن
- إرسال الرسائل باستخدام مكتبات الإشعارات الفورية على الويب
- بروتوكول الإشعارات الفورية على الويب
- التعامل مع أحداث الإشعارات الفورية
- عرض إشعار
- سلوك الإشعارات
- الأنماط الشائعة للإشعارات
- الأسئلة الشائعة حول الإشعارات الفورية
- المشاكل الشائعة والإبلاغ عن الأخطاء