다음을 통해 공유


REST API 및 Azure Portal을 사용한 Google Firebase 클라우드 메시징 마이그레이션

이 문서에서는 FCM(Firebase Cloud Messaging) v1과 Azure Notification Hubs를 통합하기 위한 핵심 기능을 설명합니다. 참고로 Google은 2024년 6월 20일에 FCM 레거시 HTTP 지원을 중지하므로 그 전에 애플리케이션 및 알림 페이로드를 새 형식으로 마이그레이션해야 합니다. 모든 온보딩 방법이 2024년 3월 1일까지 마이그레이션할 준비가 될 것입니다.

Important

2024년 6월부터 FCM 레거시 API는 더 이상 지원되지 않으며 사용 중지됩니다. 푸시 알림 서비스가 중단되지 않도록 하려면 가능한 한 빨리 FCM v1 프로토콜로 마이그레이션해야 합니다.

FCM v1에 대한 개념

  • FCM v1이라는 새 플랫폼 유형이 지원됩니다.
  • FCM v1에는 새 API, 자격 증명, 등록 및 설치가 사용됩니다.

참고 항목

이 문서에서는 기존 FCM 플랫폼을 FCM 레거시라고 합니다.

마이그레이션 단계

Firebase Cloud Messaging(FCM) 레거시 API는 2024년 7월에 지원 중단됩니다. 2024년 3월 1일에 레거시 HTTP 프로토콜에서 FCM v1으로 마이그레이션을 시작할 수 있습니다. 2024년 6월까지 마이그레이션을 완료해야 합니다. 이 섹션에서는 Notification Hubs REST API를 사용하여 FCM 레거시에서 FCM v1로 마이그레이션하는 단계를 설명합니다.

REST API

다음 섹션에서는 REST API를 사용하여 마이그레이션을 수행하는 방법을 설명합니다.

1단계: 허브에 FCM v1 자격 증명 추가

첫 번째 단계는 Azure Portal, 관리 평면 허브 작업 또는 데이터 평면 허브 작업을 통해 자격 증명을 추가하는 것입니다.

Google 서비스 계정 JSON 파일 만들기

  1. Firebase 콘솔에서 프로젝트를 선택하고 프로젝트 설정으로 이동합니다.

  2. 서비스 계정 탭을 선택하고 서비스 계정을 만든 후 Google 서비스 계정에서 프라이빗 키를 만듭니다.

  3. JSON 파일을 생성하려면 새 프라이빗 키 생성을 선택합니다. 파일을 다운로드하고 엽니다. Azure Notification Hubs 허브 자격 증명 업데이트에 필요하므로 project_id, private_keyclient_email의 값을 바꿉니다.

    Firebase 콘솔 프로젝트 설정 스크린샷.

    또는

    사용자 지정된 액세스 권한이 있는 서비스 계정을 만들려면 IAM 및 관리자 > 서비스 계정 페이지를 통해 서비스 계정을 만들 수 있습니다. 서비스 계정 권한 관리를 클릭하여 해당 페이지로 직접 이동합니다. 다음 역할 중 하나가 있는 서비스 계정을 만들 수 있습니다.

    • Firebase Admin(roles/firebase.admin)
    • Firebase Grow Admin(roles/firebase.growthAdmin)
    • Firebase Admin SDK 관리자 서비스 에이전트(roles/firebase.sdkAdminServiceAgent)
    • Firebase SDK 프로비전 서비스 에이전트(roles/firebase.sdkProvisioningServiceAgent)

    IAM 서비스 계정 설정을 보여 주는 스크린샷.

옵션 1: Azure Portal을 통해 FcmV1 자격 증명 업데이트

Azure Portal의 알림 허브로 이동하여 설정 > Google(FCM v1)을 선택합니다. 이전 섹션에서 획득한 서비스 계정 JSON 파일에서 프라이빗 키, 프로젝트 ID클라이언트 이메일 값을 가져와 나중에 사용할 수 있도록 저장합니다.

Azure Portal Firebase 자격 증명 옵션을 보여 주는 스크린샷.

옵션 2: 관리 평면 허브 작업을 통해 FcmV1 자격 증명 업데이트

NotificationHub FcmV1Credential에 대한 설명을 참조하세요.

  • API 버전 사용: 2023-10-01-preview

  • FcmV1CredentialProperties:

    속성 Type
    clientEmail string
    privateKey string
    projectId string

옵션 3: 데이터 평면 허브 작업을 통해 FcmV1 자격 증명 업데이트

알림 허브 만들기알림 허브 업데이트를 참조하세요.

  • API 버전 사용: 2015-01
  • 순서가 중요하므로 GcmCredential 뒤에 FcmV1Credential을 입력합니다.

예를 들어, 요청 본문은 다음과 같습니다.

<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단계: 등록 및 설치 관리

직접 전송 시나리오의 경우 3단계로 바로 진행합니다. Azure SDK 중 하나를 사용하는 경우 SDK 문서를 참조하세요.

옵션 1: FCM v1 등록 만들기 또는 GCM 등록을 FCM v1로 업데이트

기존 GCM 등록이 있는 경우 등록을 FcmV1Registration으로 업데이트합니다. 등록 만들기 또는 업데이트를 참조하세요. 기존 GcmRegistration이 없으면 FcmV1Registration으로 새 등록을 만듭니다. 등록 만들기를 참조하세요. 등록 요청 본문은 다음 예와 같이 나타나야 합니다.

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

옵션 2: FCM c1 설치 만들기 또는 GCM 설치를 FCM v1로 업데이트

설치 만들기 또는 덮어쓰기를 참조하고 platformFCMV1로 설정합니다.

3단계: 푸시 알림 보내기

옵션 1: 디버그 보내기

옵션 2, 3 또는 4 이전에 알림을 테스트하려면 이 절차를 사용합니다. Notification Hubs - 디버그 보내기를 참조하세요.

참고 항목

API 버전 사용: 2023-10-01-preview.

헤더에서:

요청 헤더
Content-Type application/json;charset=utf-8
ServiceBusNotification-Format fcmV1 또는 template으로 설정
Servicebusnotification-Tags {단일 태그 식별자}

디버그 전송을 통해 다음 구조를 사용하여 페이로드를 테스트합니다. FcmV1에서는 JSON 메시지 페이로드 구조가 크게 변경되었습니다.

  1. 전체 페이로드가 메시지 개체 아래로 이동되었습니다.
  2. Android 관련 옵션이 Android 개체로 이동되었으며 time_to_live는 이제 문자열 값이 있는 ttl입니다.
  3. 이제 data 필드는 단순 문자열-문자열 매핑만 허용합니다.
  4. 자세한 내용은 FCM 참조를 확인합니다.

또는 Azure Portal을 통해 테스트 보내기(디버그 보내기)를 수행할 수 있습니다.

Azure Portal 테스트 보내기 페이지를 보여 주는 스크린샷.

옵션 2: 직접 보내기

직접 보내기를 수행합니다. 요청 헤더에서 ServiceBusNotification-FormatfcmV1로 설정합니다.

옵션 3: FcmV1 네이티브 알림(대상 그룹 보내기)

FcmV1 네이티브 알림 보내기를 수행합니다. GCM(Google Cloud Messaging) 네이티브 알림 보내기를 참조하세요. 요청 헤더에서 ServiceBusNotification-FormatfcmV1로 설정합니다. 예를 들어, 요청 본문에서 다음과 같습니다.

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

옵션 4: 템플릿 알림

새 JSON 페이로드 구조에 따라 새 요청 본문을 사용하여 템플릿 전송을 테스트할 수 있습니다. 다른 변경은 필요하지 않습니다. 템플릿 알림 보내기를 참조하세요.

다음 단계

Azure SDK를 사용한 Firebase 클라우드 메시징 마이그레이션