REST API ve Azure portalını kullanarak Google Firebase Cloud Messaging geçişi

Bu makalede, Azure Notification Hubs'ın Firebase Cloud Messaging (FCM) v1 ile tümleştirilmesine yönelik temel özellikler açıklanmaktadır. Google, 20 Haziran 2024'te FCM'nin eski HTTP'sini desteklemeyi durduracaktır, bu nedenle uygulamalarınızı ve bildirim yüklerinizi daha önce yeni biçime geçirmeniz gerekir. Tüm ekleme yöntemleri 1 Mart 2024'e kadar geçiş için hazır olacaktır.

Önemli

Haziran 2024 itibarıyla FCM eski API'leri artık desteklenmeyecektir ve kullanımdan kaldırılacaktır. Anında iletme bildirimi hizmetinizde herhangi bir kesinti yaşanmasını önlemek için mümkün olan en kısa sürede FCM v1 protokolüne geçmeniz gerekir.

FCM v1 kavramları

  • FCM v1 adlı yeni bir platform türü desteklenir.
  • FCM v1 için yeni API'ler, kimlik bilgileri, kayıtlar ve yüklemeler kullanılır.

Not

Mevcut FCM platformu bu makalede FCM'nin eski sürümü olarak adlandırılır.

Geçiş adımları

Firebase Cloud Messaging (FCM) eski API'si Temmuz 2024'e kadar kullanımdan kaldırılacaktır. Eski HTTP protokolünden FCM v1'e 1 Mart 2024'te geçiş yapmaya başlayabilirsiniz. Geçişi Haziran 2024'e kadar tamamlamanız gerekir. Bu bölümde Notification Hubs REST API'sini kullanarak FCM eskisinden FCM v1 sürümüne geçiş adımları açıklanmaktadır.

REST API

Aşağıdaki bölümde REST API kullanarak geçişin nasıl gerçekleştirildiği açıklanmaktadır.

1. Adım: Hub'a FCM v1 kimlik bilgileri ekleme

İlk adım Azure portalı, yönetim düzlemi hub'ı işlemi veya veri düzlemi hub'ı işlemi aracılığıyla kimlik bilgileri eklemektir.

Google hizmet hesabı JSON dosyası oluşturma

  1. Firebase konsolunda projenizi seçin ve Proje ayarları'na gidin.

  2. Hizmet hesapları sekmesini seçin, bir hizmet hesabı oluşturun ve Google hizmet hesabınızdan bir özel anahtar oluşturun.

  3. JSON dosyası oluşturmak için Yeni özel anahtar oluştur'a tıklayın. Dosyayı indirip açın. Azure Notification Hubs hub kimlik bilgisi güncelleştirmeleri için project_idgerekli olduğundan , private_keyve client_emaildeğerlerini değiştirin.

    Firebase konsol projesi ayarlarının ekran görüntüsü.

    VEYA

    Özelleştirilmiş erişim iznine sahip bir hizmet hesabı oluşturmak istiyorsanız, IAM ve Yönetici > Hizmet Hesapları sayfası aracılığıyla bir hizmet hesabı oluşturabilirsiniz. Hizmet hesabı izinlerini yönet'e tıklayarak doğrudan sayfaya gidin. Aşağıdaki rollerden birine sahip bir hizmet hesabı oluşturabilirsiniz:

    • Firebase Yönetici (roles/firebase.admin)
    • Firebase Grow Yönetici (roles/firebase.growth Yönetici)
    • Firebase Yönetici SDK Yönetici istrator Service Agent (roles/firebase.sdk Yönetici ServiceAgent)
    • Firebase SDK Sağlama Hizmeti Aracısı (roles/firebase.sdkProvisioningServiceAgent)

    IAM hizmet hesabı ayarlarını gösteren ekran görüntüsü.

1. Seçenek: FcmV1 kimlik bilgilerini Azure portalı üzerinden güncelleştirme

Azure portalında bildirim hub'ınıza gidin ve Ayarlar > Google (FCM v1) öğesini seçin. Önceki bölümden alınan hizmet hesabı JSON dosyasından Özel Anahtar, Proje Kimliği ve İstemci E-postası değerlerini alın ve daha sonra kullanmak üzere kaydedin.

Azure portalı Firebase kimlik bilgileri seçeneklerini gösteren ekran görüntüsü.

2. Seçenek: Yönetim düzlemi hub işlemi aracılığıyla FcmV1 kimlik bilgilerini güncelleştirme

NotificationHub FcmV1Credential açıklamasına bakın.

  • API sürümünü kullanma: 2023-10-01-preview

  • FcmV1CredentialProperties:

    Adı Tip
    clientEmail Dize
    privateKey Dize
    projectId Dize

Seçenek 3: Veri düzlemi hub işlemi aracılığıyla FcmV1 kimlik bilgilerini güncelleştirme

Bkz. Bildirim hub'ı oluşturma ve Bildirim hub'larını güncelleştirme.

  • API sürümünü kullanma: 2015-01
  • Sıra önemli olduğundan FcmV1Credential değerini GcmCredential'ın arkasına koyduğundan emin olun.

Örneğin, istek gövdesi aşağıda verilmiştir:

<NotificationHubDescription xmlns:i='http://www.w3.org/2001/XMLSchema-instance' 
    xmlns='http://schemas.microsoft.com/netservices/2010/10/servicebus/connect'> 
    <ApnsCredential> 
        <Properties> 
            <Property> 
                <Name>Endpoint</Name> 
                <Value>{_apnsCredential.Endpoint}</Value> 
            </Property> 
            <Property> 
                <Name>AppId</Name> 
                <Value>{_apnsCredential.AppId}</Value> 
            </Property> 
            <Property> 
                <Name>AppName</Name> 
                <Value>{_apnsCredential.AppName}</Value> 
            </Property> 
            <Property> 
                <Name>KeyId</Name> 
                <Value>{_apnsCredential.KeyId}</Value> 
            </Property> 
            <Property> 
                <Name>Token</Name> 
                <Value>{_apnsCredential.Token}</Value> 
            </Property> 
        </Properties> 
    </ApnsCredential> 
    <WnsCredential> 
        <Properties> 
            <Property> 
                <Name>PackageSid</Name> 
                <Value>{_wnsCredential.PackageSid}</Value> 
            </Property> 
            <Property> 
                <Name>SecretKey</Name> 
                <Value>{_wnsCredential.SecretKey}</Value> 
            </Property> 
        </Properties> 
    </WnsCredential> 
    <GcmCredential> 
        <Properties> 
            <Property> 
                <Name>GoogleApiKey</Name> 
                <Value>{_gcmCredential.GoogleApiKey}</Value> 
            </Property> 
        </Properties> 
    </GcmCredential> 
    <FcmV1Credential> 
        <Properties> 
            <Property> 
                <Name>ProjectId</Name> 
                <Value>{_fcmV1Credential.ProjectId}</Value> 
            </Property> 
            <Property> 
                <Name>PrivateKey</Name> 
                <Value>{_fcmV1Credential.PrivateKey}</Value> 
            </Property> 
            <Property> 
                <Name>ClientEmail</Name> 
                <Value>{_fcmV1Credential.ClientEmail}</Value> 
            </Property> 
        </Properties> 
    </FcmV1Credential> 
</NotificationHubDescription>

2. Adım: Kaydı ve yüklemeyi yönetme

Doğrudan gönderme senaryoları için doğrudan 3. adıma geçin. Azure SDK'larından birini kullanıyorsanız SDK'lar makalesine bakın.

Seçenek 1: FCM v1 kaydı oluşturma veya GCM kaydını FCM v1'e güncelleştirme

Mevcut bir GCM kaydınız varsa kaydı FcmV1Registration olarak güncelleştirin. Bkz. Kayıt oluşturma veya güncelleştirme. GcmRegistration'nız yoksa FcmV1Registration olarak yeni bir kayıt oluşturun. Bkz. Kayıt oluşturma. Kayıt isteği gövdesi aşağıdaki örnekte olduğu gibi görünmelidir:

// FcmV1Registration 
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
    <content type="application/xml">
        <FcmV1RegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
            <Tags>myTag, myOtherTag</Tags>
            <FcmV1RegistrationId>{deviceToken}</FcmV1RegistrationId>
        </FcmV1RegistrationDescription>
    </content>
</entry> 

// FcmV1TemplateRegistration 
<?xml version="1.0" encoding="utf-8"?>
<entry xmlns="http://www.w3.org/2005/Atom">
    <content type="application/xml">
        <FcmV1TemplateRegistrationDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
            xmlns="http://schemas.microsoft.com/netservices/2010/10/servicebus/connect">
            <Tags>myTag, myOtherTag</Tags>
            <FcmV1RegistrationId>{deviceToken}</FcmV1RegistrationId>
            <BodyTemplate><![CDATA[ {BodyTemplate}]]></BodyTemplate>
        </FcmV1TemplateRegistrationDescription>
    </content>
</entry>

Seçenek 2: FCM c1 yüklemesini oluşturma veya GCM yüklemesini FCM v1'e güncelleştirme

Bkz. Yükleme oluşturma veya üzerine yazma ve olarak ayarlama.FCMV1platform

3. Adım: Anında iletme bildirimi gönderme

Seçenek 1: Hata ayıklama gönderme

2, 3 veya 4. seçenek öncesinde bildirimleri test etmek için bu yordamı kullanın. Bkz. Notification Hubs - Hata Ayıklama Gönderme.

Not

API sürümünü kullan: 2023-10-01-preview.

Üst bilgide:

İstek üst bilgisi Değer
Content-Type application/json;charset=utf-8
ServiceBusNotification-Format veya olarak fcmV1 ayarlayın template
Servicebusnotification-Tags {single tag identifier}

Hata ayıklama gönderme yoluyla aşağıdaki yapıya sahip bir yükü test edin. FcmV1'in JSON ileti yükünün yapılandırılmasında önemli bir değişiklik olduğunu unutmayın:

  1. Yükün tamamı bir ileti nesnesinin altına taşındı.
  2. Android'e özgü seçenekler Android nesnesine taşındı ve time_to_live artık ttl bir dize değeriyle birlikte.
  3. Bu data alan artık yalnızca düz bir dizeden dizeye eşlemeye izin verir.
  4. Daha fazla bilgi için bkz . FCM başvurusu.

Alternatif olarak, Azure portalı aracılığıyla bir test gönderme (hata ayıklama gönderme) gerçekleştirebilirsiniz:

Azure portalı test gönderme sayfasını gösteren ekran görüntüsü.

Seçenek 2: Doğrudan gönderme

Doğrudan gönderme gerçekleştirin. İstek üst bilgisinde olarak fcmV1ayarlayınServiceBusNotification-Format.

Seçenek 3: FcmV1 yerel bildirimi (hedef kitle gönderme)

FcmV1 yerel bildirim gönderme işlemi gerçekleştirin. Bkz. Google Cloud Messaging (GCM) yerel bildirimi gönderme. İstek üst bilgisinde olarak fcmV1ayarlayınServiceBusNotification-Format. Örneğin, istek gövdesinde:

{ 
  "message": { 
    "notification": {  
        "title": "Breaking News",  
        "body": "FcmV1 is ready."  
        }, 
    "android": {  
        "data": {  
            "name": "wrench",  
            "mass": "1.3kg",  
            "count": "3"  
            }  
        } 
    } 
}

Seçenek 4: şablon bildirimi

Şablon göndermelerini, yeni JSON yük yapısından sonra yeni bir istek gövdesiyle test edebilirsiniz. Başka hiçbir değişiklik yapılması gerekmez. Bkz. Şablon bildirimi gönderme.

Sonraki adımlar

Azure SDK'larını kullanarak Firebase Cloud Messaging geçişi