FCM JavaScript API به شما امکان می دهد پیام های اعلان را در برنامه های وب در حال اجرا در مرورگرهایی که از Push API پشتیبانی می کنند دریافت کنید. این شامل نسخههای مرورگر فهرستشده در این ماتریس پشتیبانی و افزونههای Chrome از طریق Push API میشود.
FCM SDK فقط در صفحات ارائه شده از طریق HTTPS پشتیبانی می شود. این به دلیل استفاده از کارگران سرویس است که فقط در سایت های HTTPS در دسترس هستند. اگر به یک ارائه دهنده نیاز دارید، میزبانی Firebase توصیه می شود و یک ردیف بدون هزینه برای میزبانی 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 یا جدیدتر ارتقا دهید، باید API ثبت FCM را برای پروژه خود در Google Cloud Console فعال کنید. وقتی API را فعال میکنید، مطمئن شوید که با همان حساب Google که برای Firebase استفاده میکنید، وارد کنسول Cloud شدهاید و مطمئن شوید که پروژه درست را انتخاب کردهاید. پروژههای جدیدی که FCM SDK را اضافه میکنند، این API را بهطور پیشفرض فعال کردهاند.
اعتبارنامه وب را با FCM پیکربندی کنید
رابط وب FCM از اعتبارنامههای وب به نام «شناسایی سرور برنامه داوطلبانه» یا کلیدهای «VAPID» استفاده میکند تا درخواستهای ارسال را به سرویسهای فشار وب پشتیبانیشده مجاز کند. برای اشتراک برنامه خود در اعلانهای فشاری، باید یک جفت کلید را با پروژه Firebase خود مرتبط کنید. می توانید یک جفت کلید جدید ایجاد کنید یا جفت کلید موجود خود را از طریق کنسول Firebase وارد کنید.
یک جفت کلید جدید ایجاد کنید
- برگه Cloud Messaging را در قسمت تنظیمات کنسول Firebase باز کنید و به بخش پیکربندی وب بروید.
- در برگه Web Push Certificates ، روی Generate Key Pair کلیک کنید. کنسول اعلامیه ای مبنی بر ایجاد جفت کلید نمایش می دهد و رشته کلید عمومی و تاریخ اضافه شده را نمایش می دهد.
یک جفت کلید موجود را وارد کنید
اگر یک جفت کلید موجود دارید که از قبل با برنامه وب خود استفاده میکنید، میتوانید آن را به FCM وارد کنید تا بتوانید از طریق APIهای FCM به نمونههای برنامه وب موجود خود دسترسی پیدا کنید. برای وارد کردن کلیدها، باید به پروژه Firebase در سطح مالک دسترسی داشته باشید. کلید عمومی و خصوصی موجود خود را در قالب کدگذاری شده امن URL base64 وارد کنید:
- برگه Cloud Messaging را در قسمت تنظیمات کنسول Firebase باز کنید و به بخش پیکربندی وب بروید.
- در برگه Web Push Certificates ، متن پیوند «وارد کردن یک جفت کلید موجود» را پیدا کرده و انتخاب کنید.
- در گفتگوی وارد کردن جفت کلید ، کلیدهای عمومی و خصوصی خود را در فیلدهای مربوطه وارد کنید و روی واردات کلیک کنید. کنسول رشته کلید عمومی و تاریخ اضافه شدن را نمایش می دهد.
برای دستورالعملهایی درباره نحوه افزودن کلید به برنامه، به پیکربندی اعتبارنامههای وب در برنامه خود مراجعه کنید. برای اطلاعات بیشتر در مورد قالب کلیدها و نحوه تولید آنها، به کلیدهای سرور برنامه مراجعه کنید.
اطلاعات کاربری وب را در برنامه خود پیکربندی کنید
متد 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 برای وب (جاوا اسکریپت) وجود دارد:
- برای دریافت پیام ها قابلیتی را به برنامه خود اضافه کنید.
- یکی از آموزشهای ما را امتحان کنید: اولین پیام خود را به یک برنامه پسزمینه ارسال کنید یا پیامها را به چندین دستگاه ارسال کنید .
- یک نمونه کامل را در GitHub مرور کنید.
- مرجع جاوا اسکریپت را مرور کنید.
- مشاهده تصویری از پیاده سازی API.