FCM JavaScript API, Push API'yi destekleyen tarayıcılarda çalışan web uygulamalarında bildirim mesajları almanıza olanak tanır. Bu destek matrisinde listelenen tarayıcı sürümleri ve Push API aracılığıyla Chrome uzantıları bu kapsamdadır.
FCM SDK'sı yalnızca HTTPS üzerinden sunulan sayfalarda desteklenir. Bunun nedeni, yalnızca HTTPS sitelerinde kullanılabilen hizmet işçilerinin kullanılmasıdır. Bir sağlayıcıya ihtiyacınız varsa Firebase Hosting önerilir. Firebase Hosting, kendi alanınızda HTTPS barındırma için ücretsiz bir katman sağlar.
FCM JavaScript API'yi kullanmaya başlamak için web uygulamanıza Firebase'i eklemeniz ve kayıt jetonlarına erişmek için mantık eklemeniz gerekir.
FCM SDK'sını ekleme ve başlatma
Henüz yapmadıysanız Firebase JS SDK'sını yükleyin ve Firebase'i başlatın.
Firebase Cloud Messaging JS SDK'sını ekleyin ve Firebase Cloud Messaging'yi başlatın:
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();
Şu anda web için FCM kullanıyorsanız ve SDK 6.7.0 veya sonraki bir sürüme geçmek istiyorsanız Google Cloud Console'da projeniz için FCM Registration API'yi etkinleştirmeniz gerekir. API'yi etkinleştirirken Cloud Console'a Firebase için kullandığınız Google Hesabı ile giriş yaptığınızdan ve doğru projeyi seçtiğinizden emin olun. FCM SDK'sını ekleyen yeni projelerde bu API varsayılan olarak etkindir.
FCM ile web kimlik bilgilerini yapılandırma
FCM web arayüzü, desteklenen web push hizmetlerine istek gönderme yetkilendirmesi için "Voluntary Application Server Identification" (İsteğe Bağlı Uygulama Sunucusu Tanımlaması) veya "VAPID" anahtarları adlı web kimlik bilgilerini kullanır. Uygulamanızı push bildirimlerine abone etmek için Firebase projenizle bir anahtar çifti ilişkilendirmeniz gerekir. Firebase Console üzerinden yeni bir anahtar çifti oluşturabilir veya mevcut anahtar çiftinizi içe aktarabilirsiniz.
Yeni bir anahtar çifti oluşturma
- Firebase konsolunun Ayarlar bölmesinde Cloud Mesajlaşma sekmesini açın ve Web yapılandırması bölümüne gidin.
- Web Push sertifikaları sekmesinde Anahtar çifti oluştur'u tıklayın. Konsol, anahtar çiftinin oluşturulduğuna dair bir bildirim, ortak anahtar dizesini ve eklenme tarihini gösterir.
Mevcut bir anahtar çiftini içe aktarma
Web uygulamanızla halihazırda kullandığınız bir anahtar çiftiniz varsa FCM API'leri aracılığıyla mevcut web uygulaması örneklerinizin erişebilmesi için FCM'e aktarabilirsiniz. Anahtarları içe aktarmak için Firebase projesine sahip düzeyinde erişiminiz olmalıdır. Mevcut ortak ve özel anahtarınızı base64 URL için güvenli kodlanmış biçimde içe aktarın:
- Firebase konsolunun Ayarlar bölmesinde Cloud Mesajlaşma sekmesini açın ve Web yapılandırması bölümüne gidin.
- Web Push sertifikaları sekmesinde "Mevcut bir anahtar çiftini içe aktar" bağlantı metnini bulup seçin.
- Anahtar çiftini içe aktar iletişim kutusunda, ilgili alanlara ortak ve özel anahtarlarınızı girin ve İçe aktar'ı tıklayın. Konsolda, ortak anahtar dizesi ve eklenme tarihi gösterilir.
Anahtarı uygulamanıza ekleme talimatları için Uygulamanızda web kimlik bilgilerini yapılandırma başlıklı makaleyi inceleyin. Anahtarların biçimi ve nasıl oluşturulacağı hakkında daha fazla bilgi için Uygulama sunucusu anahtarları başlıklı makaleyi inceleyin.
Uygulamanızda web kimlik bilgilerini yapılandırma
getToken(): Promise<string>
yöntemi, FCM'ın farklı push hizmetlerine mesaj istekleri gönderirken VAPID anahtar kimlik bilgisini kullanmasına olanak tanır. FCM ile web kimlik bilgilerini yapılandırma başlıklı makaledeki talimatlara göre oluşturduğunuz veya içe aktardığınız anahtarı, mesajlaşma nesnesi alındıktan sonra kodunuza ekleyin:
import { getMessaging, getToken } from "firebase/messaging";
const messaging = getMessaging();
// Add the public key generated from the console here.
getToken(messaging, {vapidKey: "BKagOny0KF_2pCJQ3m....moL0ewzQ8rZu"});
Kayıt jetonuna erişme
Bir uygulama örneğinin mevcut kayıt jetonunu almanız gerektiğinde önce Notification.requestPermission()
ile kullanıcıdan bildirim izinleri isteyin.
Gösterildiği gibi çağrıldığında, izin verilirse bir jeton döndürür veya izin reddedilirse söz vermeyi reddeder:
function requestPermission() { console.log('Requesting permission...'); Notification.requestPermission().then((permission) => { if (permission === 'granted') { console.log('Notification permission granted.');
FCM için firebase-messaging-sw.js
dosyası gereklidir.
firebase-messaging-sw.js
dosyanız yoksa jeton almadan önce bu ada sahip boş bir dosya oluşturup alanınızın kök dizinine yerleştirin.
İstemci kurulum işleminin ilerleyen aşamalarında dosyaya anlamlı içerikler ekleyebilirsiniz.
Geçerli jetonu almak için:
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); // ... });
Jetonu aldıktan sonra uygulama sunucunuza gönderin ve tercih ettiğiniz yöntemi kullanarak saklayın.
Sonraki adımlar
Kurulum adımlarını tamamladıktan sonra, Web için FCM'ü (JavaScript) kullanmaya devam etmek üzere aşağıdaki seçeneklerden yararlanabilirsiniz:
- Mesaj almak için uygulamanıza işlevsellik ekleyin.
- Arka Planda Çalışan Bir Uygulamaya İlk Mesajınızı Gönderme veya Birden Fazla Cihaza Mesaj Gönderme eğitimlerimizden birini deneyin.
- GitHub'da eksiksiz bir örneği inceleyin.
- JavaScript referansını inceleyin.
- API'yi uygulamayla ilgili adım adım açıklamalı videoyu izleyin.