Udostępnij za pośrednictwem


Migracja usługi Google Firebase Cloud Messaging przy użyciu interfejsu API REST i witryny Azure Portal

W tym artykule opisano podstawowe możliwości integracji usługi Azure Notification Hubs z usługą Firebase Cloud Messaging (FCM) w wersji 1. Przypominamy, że firma Google przestanie obsługiwać starsze protokoły HTTP FCM 20 czerwca 2024 r., dlatego przed rozpoczęciem migracji aplikacji i ładunków powiadomień należy przeprowadzić migrację do nowego formatu. Wszystkie metody dołączania będą gotowe do migracji do 1 marca 2024 r.

Ważne

Od czerwca 2024 r. starsze interfejsy API usługi FCM nie będą już obsługiwane i zostaną wycofane. Aby uniknąć zakłóceń w usłudze powiadomień wypychanych, należy przeprowadzić migrację do protokołu FCM v1 tak szybko, jak to możliwe.

Pojęcia dotyczące usługi FCM w wersji 1

  • Obsługiwany jest nowy typ platformy o nazwie FCM v1.
  • Nowe interfejsy API, poświadczenia, rejestracje i instalacje są używane dla usługi FCM w wersji 1.

Uwaga

Istniejąca platforma FCM jest określana jako starsza wersja usługi FCM w tym artykule.

Kroki migracji

Starszy interfejs API firebase Cloud Messaging (FCM) zostanie wycofany do lipca 2024 r. Migrację ze starszego protokołu HTTP do usługi FCM w wersji 1 można rozpocząć 1 marca 2024 r. Migrację należy ukończyć do czerwca 2024 r. W tej sekcji opisano kroki migracji ze starszej wersji usługi FCM do usługi FCM w wersji 1 przy użyciu interfejsu API REST usługi Notification Hubs.

Interfejs API REST

W poniższej sekcji opisano sposób przeprowadzania migracji przy użyciu interfejsu API REST.

Krok 1. Dodawanie poświadczeń usługi FCM w wersji 1 do centrum

Pierwszym krokiem jest dodanie poświadczeń za pośrednictwem witryny Azure Portal, operacji centrum płaszczyzny zarządzania lub operacji centrum płaszczyzny danych.

Tworzenie pliku JSON konta usługi Google

  1. W konsoli Firebase wybierz projekt i przejdź do pozycji Ustawienia projektu.

  2. Wybierz kartę Konta usług, utwórz konto usługi i wygeneruj klucz prywatny na podstawie konta usługi Google.

  3. Wybierz pozycję Generuj nowy klucz prywatny, aby wygenerować plik JSON. Pobierz i otwórz plik. Zastąp wartości , project_idprivate_keyi client_email, ponieważ są one wymagane w przypadku aktualizacji poświadczeń centrum Azure Notification Hubs.

    Zrzut ekranu przedstawiający ustawienia projektu konsoli Firebase.

    LUB

    Jeśli chcesz utworzyć konto usługi z dostosowanym uprawnieniem dostępu, możesz utworzyć konto usługi za pośrednictwem strony Konta usług IAM i Administracja>. Przejdź do strony bezpośrednio, klikając pozycję Zarządzaj uprawnieniami konta usługi. Możesz utworzyć konto usługi, które ma jedną z następujących ról:

    • Administracja Firebase (role/firebase.admin)
    • Firebase Grow Administracja (roles/firebase.growth Administracja)
    • Agent usługi Administracja istrator zestawu SDK programu Firebase Administracja (roles/firebase.sdk Administracja ServiceAgent)
    • Agent usługi Aprowizacji zestawu SDK programu Firebase (roles/firebase.sdkProvisioningServiceAgent)

    Zrzut ekranu przedstawiający ustawienia konta usługi IAM.

Opcja 1. Aktualizowanie poświadczeń fcmV1 za pośrednictwem witryny Azure Portal

Przejdź do centrum powiadomień w witrynie Azure Portal i wybierz pozycję Ustawienia > Google (FCM v1). Pobierz wartości Klucz prywatny, Identyfikator projektu i Adres e-mail klienta z pliku JSON konta usługi uzyskane z poprzedniej sekcji i zapisz je do późniejszego użycia.

Zrzut ekranu przedstawiający opcje poświadczeń programu Firebase w witrynie Azure Portal.

Opcja 2. Aktualizowanie poświadczeń fcmV1 za pomocą operacji centrum płaszczyzny zarządzania

Zobacz opis elementu NotificationHub FcmV1Credential.

  • Użyj wersji interfejsu API: 2023-10-01-preview

  • FcmV1CredentialProperties:

    Nazwisko Typ
    clientEmail string
    privateKey string
    projectId string

Opcja 3. Aktualizowanie poświadczeń fcmV1 za pomocą operacji centrum płaszczyzny danych

Zobacz Tworzenie centrum powiadomień i Aktualizowanie centrum powiadomień.

  • Użyj wersji interfejsu API: 2015-01
  • Pamiętaj, aby umieścić fcmV1Credential po GcmCredential, ponieważ kolejność jest ważna.

Na przykład poniżej znajduje się treść żądania:

<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>

Krok 2. Zarządzanie rejestracją i instalacją

W przypadku scenariuszy wysyłania bezpośredniego przejdź bezpośrednio do kroku 3. Jeśli używasz jednego z zestawów SDK platformy Azure, zobacz artykuł Zestawy SDK.

Opcja 1. Tworzenie rejestracji usługi FCM w wersji 1 lub aktualizowanie rejestracji usługi GCM w usłudze FCM w wersji 1

Jeśli masz istniejącą rejestrację usługi GCM, zaktualizuj rejestrację na FcmV1Registration. Zobacz Tworzenie lub aktualizowanie rejestracji. Jeśli nie masz istniejącej funkcji GcmRegistration, utwórz nową rejestrację jako FcmV1Registration. Zobacz Tworzenie rejestracji. Treść żądania rejestracji powinna być wyświetlana tak, jak w poniższym przykładzie:

// 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>

Opcja 2. Utwórz instalację fcM c1 lub zaktualizuj instalację usługi GCM do usługi FCM w wersji 1

Zobacz Tworzenie lub zastępowanie instalacji i ustawianie wartości platform FCMV1.

Krok 3. Wysyłanie powiadomienia wypychanego

Opcja 1. Wysyłanie debugowania

Ta procedura służy do testowania powiadomień przed opcją 2, 3 lub 4. Zobacz Notification Hubs — Debug Send (Usługa Notification Hubs — wysyłanie debugowania).

Uwaga

Użyj wersji interfejsu API: 2023-10-01-preview.

W nagłówku:

Nagłówek żądania Wartość
Content-Type application/json;charset=utf-8
ServiceBusNotification-Format Ustaw na lub fcmV1template
Servicebusnotification-Tags {identyfikator pojedynczego tagu}

Przetestuj ładunek przy użyciu następującej struktury za pomocą wysyłania debugowania. Należy pamiętać, że fcmV1 wprowadza znaczącą zmianę struktury ładunku komunikatu JSON:

  1. Cały ładunek został przeniesiony pod obiekt komunikatu.
  2. Opcje specyficzne dla systemu Android przeniesione do obiektu systemu Android i time_to_live są teraz ttl z wartością ciągu.
  3. Pole data umożliwia teraz tylko proste mapowanie ciąg-ciąg.
  4. Aby uzyskać więcej informacji, zobacz dokumentację usługi FCM.

Alternatywnie możesz wykonać wysyłanie testowe (wysyłanie debugowania) za pośrednictwem witryny Azure Portal:

Zrzut ekranu przedstawiający stronę wysyłania testowego w witrynie Azure Portal.

Opcja 2. Bezpośrednie wysyłanie

Wykonaj bezpośrednie wysyłanie. W nagłówku żądania ustaw wartość ServiceBusNotification-Format fcmV1.

Opcja 3. Powiadomienie natywne FcmV1 (wysyłanie odbiorców)

Wykonaj wysyłanie powiadomień natywnych fcmV1. Zobacz Wysyłanie powiadomienia natywnego usługi Google Cloud Messaging (GCM). W nagłówku żądania ustaw wartość ServiceBusNotification-Format fcmV1. Na przykład w treści żądania:

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

Opcja 4. Powiadomienie o szablonie

Szablon można przetestować przy użyciu nowej treści żądania po nowej strukturze ładunku JSON. Nie trzeba wprowadzać żadnych innych zmian. Zobacz Wysyłanie powiadomienia o szablonie.

Następne kroki

Migracja usługi Firebase Cloud Messaging przy użyciu zestawów SDK platformy Azure