تتيح لك واجهة برمجة التطبيقات FCM JavaScript API تلقّي رسائل الإشعارات في تطبيقات الويب التي تعمل في المتصفّحات المتوافقة مع Push API. يشمل ذلك إصدارات المتصفّح المدرَجة في هذا المستند مصفوفة الدعم وإضافات Chrome عبر واجهة برمجة تطبيقات Push.
لا تتوافق حزمة تطوير البرامج (SDK) "FCM" إلا في الصفحات التي يتم عرضها عبر بروتوكول HTTPS. هذا هو بسبب استخدامه عاملي الخدمات، والتي تتوفر فقط على مواقع HTTPS. إذا كنت بحاجة إلى مقدّم خدمة، ننصحك باستخدام استضافة Firebase، وهي تقدّم فئة بدون تكلفة لاستضافة HTTPS على نطاقك الخاص.
للبدء باستخدام FCM JavaScript API، عليك إضافة Firebase إلى تطبيق الويب الخاص بك وإضافة منطق للوصول إلى الرموز المميّزة للتسجيل.
إضافة حزمة تطوير البرامج (SDK) لمنصّة FCM وإعدادها
ثبِّت حزمة تطوير البرامج (SDK) لـ Firebase JS وفعِّل Firebase، إذا لم يسبق لك إجراء ذلك.
أضِف حزمة تطوير البرامج (SDK) JavaScript لنظام التشغيل Firebase Cloud Messaging وإعداد Firebase Cloud Messaging:
Web
import { initializeApp } from "firebase/app"; import { getMessaging } from "firebase/messaging"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase const app = initializeApp(firebaseConfig); // Initialize Firebase Cloud Messaging and get a reference to the service const messaging = getMessaging(app);
Web
import firebase from "firebase/compat/app"; import "firebase/compat/messaging"; // TODO: Replace the following with your app's Firebase project configuration // See: https://firebase.google.com/docs/web/learn-more#config-object const firebaseConfig = { // ... }; // Initialize Firebase firebase.initializeApp(firebaseConfig); // Initialize Firebase Cloud Messaging and get a reference to the service const messaging = firebase.messaging();
في حال استخدام "FCM" للويب حاليًا وأردت الترقية إلى حزمة تطوير البرامج (SDK) 6.7.0 أو أحدث، يجب تمكين واجهة برمجة تطبيقات التسجيل في خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" لمشروعك في Google Cloud Console. عند تفعيل واجهة برمجة التطبيقات، تأكَّد من تسجيل الدخول إلى Cloud Console باستخدام حساب Google نفسه الذي تستخدمه في Firebase، واحرص على اختيار المشروع الصحيح. مشروعات جديدة تضيف تحتوي حزمة تطوير البرامج (SDK) FCM على واجهة برمجة التطبيقات هذه مفعَّلة تلقائيًا.
إعداد بيانات اعتماد الويب باستخدام FCM
تستخدم واجهة FCM على الويب بيانات اعتماد الويب المسماة "مفتاح تعريف Voluntary Application Server" أو "VAPID"، وذلك لتفويض طلبات الإرسال إلى خدمات الدفع الفوري على الويب المتوافقة. للاشتراك في تطبيقك لتلقّي الإشعارات الفورية، عليك: تحتاج إلى ربط مفتاحَين بمشروعك على Firebase. يمكنك إما إنشاء مفتاحَي تشفير جديدَين أو استيراد مفتاحَي التشفير الحاليَين من خلال Firebase Console.
إنشاء مفتاحَي تشفير جديدَين
- افتح علامة تبويب "المراسلة عبر السحابة الإلكترونية" في وحدة تحكم Firebase الإعدادات انتقِل إلى القسم ضبط الويب.
- في علامة التبويب شهادات Web Push، انقر على إنشاء مفتاحَي تشفير. تعرِض وحدة التحكّم إشعارًا بأنّه تم إنشاء مفتاحَي التشفير، وتعرض سلسلة المفتاح العام وتاريخ الإضافة.
استيراد مفتاحَي تشفير حاليَين
إذا كان لديك مفتاحا تشفير حاليان تستخدمهما حاليًا مع تطبيق الويب، عليك يمكنك استيراده إلى FCM لتتمكن من الوصول إلى تطبيق الويب الحالي. من خلال واجهات برمجة تطبيقات FCM. لاستيراد المفاتيح، يجب أن يكون لديك على مستوى المالك إلى مشروع Firebase. استورِد المفتاحَين العام والخاص الحاليَين بتنسيق base64URL المشفّر الآمن:
- افتح علامة التبويب الرسائل عبر السحابة الإلكترونية في لوحة الإعدادات لوحدة تحكّم Firebase وانتقِل إلى قسم إعدادات الويب.
- في علامة تبويب شهادات Web Push، ابحث عن نص الرابط واختَره، "استيراد زوج مفاتيح موجود".
- في مربّع الحوار استيراد مفتاحَي تشفير، أدخِل مفتاحَي التشفير العام والخاص في الحقول المقابلة وانقر على استيراد. تعرض وحدة التحكّم لجميع المستخدمين السلسلة الأساسية وتاريخ الإضافة.
للحصول على تعليمات حول كيفية إضافة المفتاح إلى تطبيقك، يُرجى الاطّلاع على مقالة ضبط بيانات اعتماد الويب في تطبيقك. للحصول على مزيد من المعلومات حول تنسيق المفاتيح وكيفية إنشائها، يُرجى الاطّلاع على مقالة مفاتيح خادم التطبيقات.
ضبط بيانات اعتماد الويب في تطبيقك
تسمح الطريقة getToken(): Promise<string>
لخدمة FCM باستخدام بيانات اعتماد مفتاح VAPID عند إرسال طلبات
الرسائل إلى خدمات دفع مختلفة. استخدام المفتاح الذي أنشأته أو استوردته
وفقًا للتعليمات الواردة في
اضبط بيانات اعتماد الويب باستخدام FCM،
إضافته في الرمز البرمجي بعد استرداد عنصر المراسلة:
import { getMessaging, getToken } from "firebase/messaging";
const messaging = getMessaging();
// Add the public key generated from the console here.
getToken(messaging, {vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu"});
الوصول إلى الرمز المميّز للتسجيل
عندما تحتاج إلى استرداد الرمز المميّز الحالي للتسجيل لنسخة تطبيق، عليك أولاً
طلب أذونات الإشعارات من المستخدم باستخدام Notification.requestPermission()
.
عندما يتم طلب الحصول على الإذن، يتم عرض رمز مميّز إذا تم منح الإذن أو رفضه.
في حال الرفض:
function requestPermission() { console.log('Requesting permission...'); Notification.requestPermission().then((permission) => { if (permission === 'granted') { console.log('Notification permission granted.');
تتطلّب FCM ملف firebase-messaging-sw.js
.
إذا لم يكن لديك ملف firebase-messaging-sw.js
، أنشئ ملفًا فارغًا
بهذا الاسم وضعه في جذر نطاقك قبل استرداد رمز مميّز.
يمكنك إضافة محتوى ذي مغزى إلى الملف لاحقًا في عملية إعداد العميل.
لاسترداد الرمز المميّز الحالي:
Web
import { getMessaging, getToken } from "firebase/messaging"; // Get registration token. Initially this makes a network call, once retrieved // subsequent calls to getToken will return from cache. const messaging = getMessaging(); getToken(messaging, { vapidKey: '<YOUR_PUBLIC_VAPID_KEY_HERE>' }).then((currentToken) => { if (currentToken) { // Send the token to your server and update the UI if necessary // ... } else { // Show permission request UI console.log('No registration token available. Request permission to generate one.'); // ... } }).catch((err) => { console.log('An error occurred while retrieving token. ', err); // ... });
Web
// Get registration token. Initially this makes a network call, once retrieved // subsequent calls to getToken will return from cache. messaging.getToken({ vapidKey: '<YOUR_PUBLIC_VAPID_KEY_HERE>' }).then((currentToken) => { if (currentToken) { // Send the token to your server and update the UI if necessary // ... } else { // Show permission request UI console.log('No registration token available. Request permission to generate one.'); // ... } }).catch((err) => { console.log('An error occurred while retrieving token. ', err); // ... });
بعد الحصول على الرمز المميّز، أرسِله إلى خادم تطبيقك وخزِّنه باستخدام الطريقة المفضّلة لديك.
الخطوات التالية
بعد الانتهاء من خطوات الإعداد، إليك بعض الخيارات لنقل الاشتراكات إعادة التوجيه باستخدام "FCM" للويب (JavaScript):
- يمكنك إضافة وظائف إلى تطبيقك تلقّي الرسائل
- جرِّب أحد الأدلة التعليمية: إرسال رسالتك الأولى إلى تطبيق في الخلفية أو إرسال الرسائل إلى أجهزة متعددة.
- يمكنك الاطّلاع على عيّنة كاملة على GitHub.
- راجِع مرجع JavaScript.
- يمكنك مشاهدة جولة تفصيلية في فيديو حول تنفيذ واجهة برمجة التطبيقات .