Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure Notification Hubs'ın Firebase Cloud Messaging (FCM) v1 ile tümleştirilmesine yönelik temel özellikler açıklanmaktadır. Hatırlatmak gerekirse Google, FCM'nin eski HTTP'sini desteklemeyi 20 Haziran 2024'te durdurduğu için uygulamalarınızı ve bildirim yüklerinizi yeni biçime geçirmeniz gerekir.
Önemli
Haziran 2024 itibarıyla FCM eski API'leri artık desteklenmemektedir ve kullanımdan kaldırılmıştır. Anında iletme bildirimi hizmetinizde herhangi bir kesinti yaşanmasını önlemek için 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ım dışı bırakıldı. Eski HTTP protokolünden FCM v1'e geçiş yapmaya başlayabilirsiniz. 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 bilgilerini 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ından 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öneticisi (roles/firebase.admin)
- Firebase Grow Yöneticisi (roles/firebase.growthAdmin)
- Firebase Yönetici SDK'sı Yönetici Hizmet Aracısı (roles/firebase.sdkAdminServiceAgent)
- 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.
Seçenek 2: Yönetim katmanı 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, yeni bir kayıt olarak FcmV1Registration 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 V1 yüklemesini oluşturma veya GCM yüklemesini FCM v1'e güncelleştirme
Bkz. Yükleme oluşturma veya üzerine yazma ve platform
öğesini FCMV1
olarak ayarlama.
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önderimi.
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 |
fcmV1 veya template olarak ayarlayın |
Servicebusnotification-Tags |
Tek etiket tanımlayıcınız |
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 FCM referansına bakın.
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 ServiceBusNotification-Format
'yi fcmV1
olarak ayarlayın.
Seçenek 3: FcmV1 yerel bildirim (hedef kitleye gönderim)
FcmV1 yerel bildirim gönderme işlemi gerçekleştirin. Bkz. Google Cloud Messaging (GCM) yerel bildirimi gönderme. İstek üst bilgisinde ServiceBusNotification-Format
'yi fcmV1
olarak ayarlayın. Ö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.