Aracılığıyla paylaş


Firebase Cloud Messaging

Firebase Cloud Messaging (FCM), mobil uygulamalar ve sunucu uygulamaları arasında mesajlaşmayı kolaylaştıran bir hizmettir. Bu makalede FCM'nin nasıl çalıştığına genel bir bakış sağlanır ve uygulamanızın FCM'yi kullanabilmesi için Google Hizmetleri'nin nasıl yapılandırıldığını açıklar.

Firebase Cloud Messaging hero image

Bu konu başlığı altında Firebase Cloud Messaging'in Xamarin.Android uygulamanızla uygulama sunucunuz arasındaki iletileri nasıl yönlendirdiği hakkında üst düzey bir genel bakış sağlanır ve uygulamanızın FCM hizmetlerini kullanabilmesi için kimlik bilgilerini almak için adım adım bir yordam sağlanır.

Genel bakış

Firebase Cloud Messaging (FCM), sunucu uygulamaları ve mobil istemci uygulamaları arasında ileti gönderme, yönlendirme ve kuyruğa alma işlemlerini işleyen platformlar arası bir hizmettir. FCM, Google Cloud Messaging'in (GCM) ardılıdır ve Google Play Hizmetleri'ni temel alır.

Aşağıdaki diyagramda gösterildiği gibi FCM, ileti gönderenler ve istemciler arasında bir aracı görevi görür. İstemci uygulaması, bir cihazda çalışan FCM özellikli bir uygulamadır. Uygulama sunucusu (siz veya şirketiniz tarafından sağlanan), istemci uygulamanızın FCM aracılığıyla iletişim kurdığı FCM özellikli sunucudur. GCM'nin aksine FCM, doğrudan Firebase Konsol Bildirimleri GUI'si aracılığıyla istemci uygulamalarına ileti göndermenizi mümkün kılar:

FCM sits between the client app and an app server

Uygulama sunucuları FCM'yi kullanarak tek bir cihaza, bir cihaz grubuna veya bir konuya abone olan birkaç cihaza ileti gönderebilir. İstemci uygulaması, bir uygulama sunucusundan aşağı akış iletilerine abone olmak için FCM kullanabilir (örneğin, uzak bildirimler almak için). Firebase iletilerinin farklı türleri hakkında daha fazla bilgi için bkz . FCM İletileri Hakkında.

Firebase Cloud Messaging çalışıyor

Uygulama sunucusundan bir istemci uygulamasına aşağı akış iletisi gönderildiğinde, uygulama sunucusu iletiyi Google tarafından sağlanan bir FCM bağlantı sunucusuna gönderir; FCM bağlantı sunucusu da iletiyi istemci uygulamasını çalıştıran bir cihaza iletir. İletiler HTTP veya XMPP (Genişletilebilir Mesajlaşma ve İletişim Durumu Protokolü) üzerinden gönderilebilir. İstemci uygulamaları her zaman bağlı veya çalışmadığından, FCM bağlantı sunucusu iletileri sıralar ve depolar ve yeniden bağlanıp kullanılabilir hale geldikçe istemci uygulamalarına gönderir. Benzer şekilde, uygulama sunucusu kullanılamıyorsa FCM de istemci uygulamasından uygulama sunucusuna yukarı akış iletilerini sıralar. FCM bağlantı sunucuları hakkında daha fazla bilgi için bkz . Firebase Cloud Messaging Sunucusu Hakkında.

FCM, uygulama sunucusunu ve istemci uygulamasını tanımlamak için aşağıdaki kimlik bilgilerini kullanır ve FCM aracılığıyla ileti işlemlerini yetkilendirmek için bu kimlik bilgilerini kullanır:

  • Gönderen KimliğiGönderen Kimliği , Firebase projenizi oluştururken atanan benzersiz bir sayısal değerdir. Gönderen kimliği, istemci uygulamasına ileti gönderebilen her uygulama sunucusunu tanımlamak için kullanılır. Gönderen kimliği aynı zamanda proje numaranızdır; projenizi kaydederken Firebase Konsolu'ndan gönderen kimliğini alırsınız. Gönderen Kimliği örneği: 496915549731.

  • API AnahtarıAPI anahtarı uygulama sunucusuna Firebase hizmetlerine erişim verir; FCM, uygulama sunucusunun kimliğini doğrulamak için bu anahtarı kullanır. Bu kimlik bilgisi Sunucu Anahtarı veya Web API Anahtarı olarak da adlandırılır. API Anahtarı örneğidir AJzbSyCTcpfRT1YRqbz-jIwp1h06YdauvewGDzk.

  • Uygulama Kimliği – FCM'den ileti almaya kaydolan istemci uygulamanızın kimliği (belirli bir cihazdan bağımsız olarak). Uygulama Kimliği örneği olarak verilmiştir 1:415712510732:android:0e1eb7a661af2460.

  • Kayıt BelirteciKayıt Belirteci (Örnek Kimliği olarak da adlandırılır), belirli bir cihazdaki istemci uygulamanızın FCM kimliğidir. Kayıt belirteci çalışma zamanında oluşturulur; uygulamanız bir cihazda çalışırken FCM'ye ilk kez kaydolduğunda bir kayıt belirteci alır. Kayıt belirteci, istemci uygulamanızın (belirli bir cihazda çalışan) bir örneğine FCM'den ileti alma yetkisi sağlar. Kayıt belirtecinin bir örneği ( fkBQTHxKKhs:AP91bHuEedxM4xFAUn0z ... JKZS çok uzun bir dize).

Firebase Cloud Messaging'i Ayarlama (bu kılavuzun ilerleyen bölümlerinde), proje oluşturma ve bu kimlik bilgilerini oluşturma hakkında ayrıntılı yönergeler sağlar. Firebase Konsolu'nda yeni bir proje oluşturduğunuzda, google-services.json adlı bir kimlik bilgileri dosyası oluşturulur. Bu dosyayı FCM ile Uzaktan Bildirimler bölümünde açıklandığı gibi Xamarin.Android projenize ekleyin.

Aşağıdaki bölümlerde, istemci uygulamaları FCM aracılığıyla uygulama sunucularıyla iletişim kurarken bu kimlik bilgilerinin nasıl kullanıldığı açıklanmaktadır.

FCM'ye kayıt

Mesajlaşmanın gerçekleşebilmesi için önce bir istemci uygulamasının FCM'ye kaydolması gerekir. İstemci uygulamasının aşağıdaki diyagramda gösterilen kayıt adımlarını tamamlaması gerekir:

App registration steps diagram

  1. İstemci uygulaması, fcm'ye gönderen kimliğini, API Anahtarını ve Uygulama Kimliğini geçirerek bir kayıt belirteci almak için FCM ile iletişim kurar.

  2. FCM, istemci uygulamasına bir kayıt belirteci döndürür.

  3. İstemci uygulaması (isteğe bağlı olarak), kayıt belirtecini uygulama sunucusuna iletir.

Uygulama sunucusu, istemci uygulamasıyla sonraki iletişimler için kayıt belirtecini önbelleğe alır. Uygulama sunucusu, kayıt belirtecinin alındığını belirtmek için istemci uygulamasına geri bir onay gönderebilir. Bu el sıkışma gerçekleştikten sonra, istemci uygulaması uygulama sunucusundan ileti alabilir (veya bu sunucuya ileti gönderebilir). Eski belirtecin güvenliği aşılırsa istemci uygulaması yeni bir kayıt belirteci alabilir (bir uygulamanın kayıt belirteci güncelleştirmelerini nasıl aldığına ilişkin bir örnek için bkz . FCM ile Uzaktan Bildirimler).

İstemci uygulaması artık uygulama sunucusundan ileti almak istemediğinde, kayıt belirtecini silmek için uygulama sunucusuna bir istek gönderebilir. İstemci uygulaması bir cihazdan kaldırılırsa FCM bunu algılar ve kayıt belirtecini silmesi için uygulama sunucusuna otomatik olarak bildirir.

Aşağı akış mesajlaşması

Aşağıdaki diyagramda Firebase Cloud Messaging'in aşağı akış iletilerini nasıl depolayıp ilettiği gösterilmektedir:

FCM uses store and forward for downstream messaging

Uygulama sunucusu istemci uygulamasına aşağı akış iletisi gönderdiğinde, yukarıdaki diyagramda numaralandırılmış olarak aşağıdaki adımları kullanır:

  1. Uygulama sunucusu iletiyi FCM'ye gönderir.

  2. İstemci cihazı kullanılamıyorsa, FCM sunucusu iletiyi daha sonra iletim için bir kuyrukta depolar. İletiler FCM depolama alanında en fazla 4 hafta saklanır (daha fazla bilgi için bkz . İletinin kullanım ömrünü ayarlama).

  3. İstemci cihaz kullanılabilir olduğunda, FCM iletiyi bu cihazdaki istemci uygulamasına iletir.

  4. İstemci uygulaması iletiyi FCM'den alır, işler ve kullanıcıya görüntüler. Örneğin, ileti uzaktan bir bildirimse, bildirim alanında kullanıcıya sunulur.

Bu mesajlaşma senaryosunda (uygulama sunucusunun tek bir istemci uygulamasına ileti gönderdiği), iletilerin uzunluğu en fazla 4 kb olabilir.

Android'de aşağı akış FCM iletilerini alma hakkında ayrıntılı bilgi için bkz . FCM ile Uzaktan Bildirimler.

Konu mesajlaşması

Konu Mesajlaşması , bir uygulama sunucusunun belirli bir konuyu kabul etmiş birden çok cihaza ileti göndermesini mümkün kılar. Ayrıca Firebase Konsol Bildirimleri GUI'sini kullanarak konu iletileri oluşturabilir ve gönderebilirsiniz. FCM, konu iletilerinin abone olunan istemcilere yönlendirilip teslimini işler. Bu özellik hava durumu uyarıları, hisse senetleri ve başlık haberleri gibi iletiler için kullanılabilir.

Topic messaging diagram

Konu mesajlaşmasında aşağıdaki adımlar kullanılır (istemci uygulaması daha önce açıklandığı gibi bir kayıt belirteci aldıktan sonra):

  1. İstemci uygulaması FCM'ye abone olma iletisi göndererek bir konuya abonedir.

  2. Uygulama sunucusu dağıtım için FCM'ye konu iletileri gönderir.

  3. FCM, konu iletilerini bu konuya abone olan istemcilere iletir.

Firebase konu mesajlaşması hakkında daha fazla bilgi için bkz. Android'de Google'ın Konu Mesajlaşması.

Firebase Cloud Messaging'i ayarlama

Uygulamanızda FCM hizmetlerini kullanabilmeniz için önce Firebase Konsolu aracılığıyla yeni bir proje oluşturmanız (veya mevcut bir projeyi içeri aktarmanız) gerekir. Uygulamanız için bir Firebase Cloud Messaging projesi oluşturmak için aşağıdaki adımları kullanın:

  1. Google hesabınızla (gmail adresiniz) Firebase Konsolunda oturum açın ve YENİ PROJE OLUŞTUR'a tıklayın:

    Create New Project button

    Mevcut bir projeniz varsa Google projesini içeri aktar'a tıklayın.

  2. Proje oluştur iletişim kutusunda projenizin adını girin ve PROJE OLUŞTUR'a tıklayın. Aşağıdaki örnekte XamarinFCM adlı yeni bir proje oluşturulur:

    Create a Project dialog

  3. Firebase Konsoluna Genel Bakış bölümünde Android uygulamanıza Firebase Ekle'ye tıklayın:

    Add Firebase to your Android app

  4. Sonraki ekranda uygulamanızın paket adını girin. Bu örnekte paket adı com.xamarin.fcmexample şeklindedir. Bu değer, Android uygulamanızın paket adıyla eşleşmelidir. Uygulama takma adı alanına bir uygulama takma adı da girilebilir:

    Entering FCM Example as the app nickname

  5. Uygulamanız Dinamik bağlantılar, Davetler veya Google Kimlik Doğrulaması kullanıyorsa hata ayıklama imzalama sertifikanızı da girmeniz gerekir. İmzalama sertifikanızı bulma hakkında daha fazla bilgi için bkz . Keystore'nuzun MD5 veya SHA1 İmzasını Bulma. Bu örnekte, imzalama sertifikası boş bırakılır.

  6. UYGULAMA EKLE'ye tıklayın:

    Clicking the Add App button

    Uygulama için bir Sunucu API anahtarı ve bir İstemci Kimliği otomatik olarak oluşturulur. Bu bilgiler, UYGULAMA EKLE'ye tıkladığınızda otomatik olarak indirilen bir google-services.json dosyasında paketlenmiş durumdadır. Bu dosyayı güvenli bir yere kaydettiğinizden emin olun.

Android'de FCM anında iletme bildirimi iletileri almak üzere uygulama projesine google-services.json ekleme hakkında ayrıntılı bir örnek için bkz. FCM ile Uzaktan Bildirimler.

Daha fazla bilgi için

Özet

Bu makalede Firebase Cloud Messaging'e (FCM) genel bir bakış sağlanmıştır. Uygulama sunucuları ve istemci uygulamaları arasında mesajlaşmayı tanımlamak ve yetkilendirmek için kullanılan çeşitli kimlik bilgileri açıklanmıştır. Kayıt ve aşağı akış mesajlaşma senaryolarını göstermiş ve FCM hizmetlerini kullanmak için uygulamanızı FCM'ye kaydetme adımlarını ayrıntılı olarak anlatmıştı.