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
Firebase konsolunda projenizi seçin ve Proje ayarları'na gidin.
Hizmet hesapları sekmesini seçin, bir hizmet hesabı oluşturun ve Google hizmet hesabınızdan bir özel anahtar oluşturun.
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_id
gerekli olduğundan ,private_key
veclient_email
değerlerini değiştirin.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)
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.
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.FCMV1
platform
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:
- Yükün tamamı bir ileti nesnesinin altına taşındı.
- Android'e özgü seçenekler Android nesnesine taşındı ve
time_to_live
artıkttl
bir dize değeriyle birlikte. - Bu
data
alan artık yalnızca düz bir dizeden dizeye eşlemeye izin verir. - 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:
Seçenek 2: Doğrudan gönderme
Doğrudan gönderme gerçekleştirin. İstek üst bilgisinde olarak fcmV1
ayarlayı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 fcmV1
ayarlayı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.