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 przestała obsługiwać starsze protokoły HTTP FCM w dniu 20 czerwca 2024 r., więc musisz przeprowadzić migrację aplikacji i ładunków powiadomień do nowego formatu.

Ważne

Od czerwca 2024 r. starsze interfejsy API usługi FCM nie są już obsługiwane i zostały wycofane. Aby uniknąć zakłóceń w usłudze powiadomień wypychanych, należy przeprowadzić migrację do protokołu FCM w wersji 1.

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 w lipcu 2024 r. Możesz rozpocząć migrację ze starszego protokołu HTTP do usługi FCM w wersji 1. 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: Dodaj poświadczenia 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_id, private_key i client_email, gdyż są one wymagane do aktualizacji poświadczeń w centrum powiadomień 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 IAM & Admin > Konta usług. 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:

    • Firebase Administrator (roles/firebase.admin)
    • Firebase Grow Admin (role/firebase.growthAdmin)
    • Agent usługi administratora zestawu SDK administratora programu Firebase (roles/firebase.sdkAdminServiceAgent)
    • Agent usługi udostępniania zestawu SDK 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 Prywatny Klucz, Identyfikator Projektu i Adres e-mail Klienta z uzyskanego z poprzedniej sekcji pliku JSON konta usługi, 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 w ramach płaszczyzny zarządzania

Zobacz opis elementu NotificationHub FcmV1Credential.

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

  • FcmV1CredentialProperties:

    Nazwisko Typ
    clientEmail sznurek
    privateKey sznurek
    projectId sznurek

Opcja 3: Aktualizowanie poświadczeń FcmV1 za pomocą operacji centrum sterowania płaszczyzną 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ł SDK.

Opcja 1. Utworzenie rejestracji usługi FCM w wersji 1 lub zaktualizowanie rejestracji usługi GCM do usługi 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. Utworzenie instalacji programu FCM v1 lub zaktualizowanie instalacji usługi GCM do usługi FCM w wersji 1

Zobacz Tworzenie lub zastępowanie instalacji i ustaw platform na FCMV1.

Krok 3: Wysyłanie powiadomienia push

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 fcmV1 lub template
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 zostały przeniesione do obiektu Android i time_to_live jest teraz ttl z wartością typu string.
  3. Pole data umożliwia teraz tylko proste mapowanie ciąg-ciąg.
  4. Aby uzyskać więcej informacji, zobacz odniesienie 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-FormatfcmV1.

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

Wykonaj wysłanie natywnego powiadomienia FcmV1. Zobacz Wysyłanie powiadomienia natywnego usługi Google Cloud Messaging (GCM). W nagłówku żądania ustaw wartość ServiceBusNotification-FormatfcmV1. 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ć, wysyłając nowe żądanie z treścią zgodną z nową strukturą ładunku JSON. Nie trzeba wprowadzać żadnych innych zmian. Zobacz Wysyłanie powiadomienia szablonowego.

Następne kroki

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