FCM JavaScript API מאפשר לכם לקבל הודעות התראה באפליקציות אינטרנט שפועלות בדפדפנים שתומכים ב-Push API. התמיכה כוללת את גרסאות הדפדפן שמפורטות בטבלת התמיכה הזו, ואת תוספי Chrome דרך Push API.
ערכת ה-SDK FCM נתמכת רק בדפים שמוצגים באמצעות HTTPS. הסיבה לכך היא השימוש ב-service workers, שזמינים רק באתרים עם HTTPS. אם אתם צריכים ספק, מומלץ להשתמש ב-Firebase Hosting, שמספק רמת שירות ללא עלות לאירוח HTTPS בדומיין שלכם.
כדי להתחיל להשתמש ב-FCM JavaScript API, צריך להוסיף את Firebase לאפליקציית האינטרנט ולהוסיף לוגיקה לגישה לטוקנים של רישום.
הוספה ואתחול של FCM SDK
אם עדיין לא עשיתם זאת, תצטרכו להתקין את Firebase JS SDK ולהפעיל את Firebase.
מוסיפים את Firebase Cloud Messaging JS SDK ומאתחלים את 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 ואילך, אתם צריכים להפעיל את FCM Registration API בפרויקט שלכם ב-Google Cloud Console. כשמפעילים את ה-API,צריך לוודא שאתם מחוברים למסוף Cloud עם אותו חשבון Google שבו אתם משתמשים ב-Firebase, ולוודא שבחרתם את הפרויקט הנכון. בפרויקטים חדשים שמוסיפים להם את FCM SDK, ה-API הזה מופעל כברירת מחדל.
הגדרה של פרטי כניסה לאתרים באמצעות FCM
בממשק האינטרנט FCM נעשה שימוש בפרטי כניסה לאינטרנט שנקראים 'זיהוי שרת אפליקציות מרצון' או מפתחות VAPID, כדי לאשר בקשות שליחה לשירותי הודעות פוש נתמכים באינטרנט. כדי לרשום את האפליקציה לקבלת הודעות פוש, צריך לשייך צמד מפתחות לפרויקט Firebase. אפשר ליצור זוג מפתחות חדש או לייבא את זוג המפתחות הקיים דרך מסוף Firebase.
יצירת זוג מפתחות חדש
- פותחים את הכרטיסייה Cloud Messaging בחלונית Settings במסוף Firebase וגוללים לקטע Web configuration.
- בכרטיסייה Web Push certificates, לוחצים על Generate Key Pair. במסוף מוצגת הודעה שזוג המפתחות נוצר, ומוצגת מחרוזת המפתח הציבורי והתאריך שבו הוא נוסף.
ייבוא של צמד מפתחות קיים
אם יש לכם צמד מפתחות קיים שאתם כבר משתמשים בו עם אפליקציית האינטרנט שלכם, אתם יכולים לייבא אותו אל FCM כדי שתוכלו לגשת למופעים הקיימים של אפליקציית האינטרנט שלכם באמצעות ממשקי ה-API של FCM. כדי לייבא מפתחות, צריכה להיות לכם גישה ברמת הבעלים לפרויקט Firebase. מייבאים את המפתח הציבורי והמפתח הפרטי הקיימים בפורמט קידוד base64 בטוח לכתובות URL:
- פותחים את הכרטיסייה Cloud Messaging בחלונית Settings במסוף Firebase וגוללים לקטע Web configuration.
- בכרטיסייה אישורים של הודעות פוש באינטרנט, מחפשים את הטקסט של הקישור 'ייבוא של צמד מפתחות קיים' ובוחרים בו.
- בתיבת הדו-שיח Import a key pair (ייבוא זוג מפתחות), מזינים את המפתחות הציבורי והפרטי בשדות המתאימים ולוחצים על Import (ייבוא). במסוף מוצגים מחרוזת המפתח הציבורי והתאריך שבו הוא נוסף.
הוראות להוספת המפתח לאפליקציה מופיעות במאמר בנושא הגדרת פרטי כניסה לאתר באפליקציה. מידע נוסף על פורמט המפתחות ועל אופן היצירה שלהם מופיע במאמר בנושא מפתחות של שרת האפליקציה.
הגדרת פרטי כניסה לאתר באפליקציה
השיטה getToken(): Promise<string>
מאפשרת ל-FCM להשתמש באישור מפתח VAPID כששולחים בקשות להודעות לשירותי Push שונים. באמצעות המפתח שיצרתם או ייבאתם לפי ההוראות במאמר הגדרת פרטי כניסה לאתר באמצעות 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.');
נדרש קובץ firebase-messaging-sw.js
ב-FCM.
אלא אם כבר יש לכם קובץ 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.
- אפשר לצפות בסרטון הדרכה להטמעה של ה-API.