使用 REST API 和 Azure 入口網站 進行 Google Firebase 雲端傳訊移轉
本文說明 Azure 通知中樞與 Firebase 雲端通訊 (FCM) v1 整合的核心功能。 提醒您,Google 將於 2024 年 6 月 20 日停止支援 FCM 舊版 HTTP,因此您必須先將應用程式和通知承載移轉至新的格式,然後才行。 到 2024 年 3 月 1 日,所有上線方法都已準備好進行移轉。
重要
自 2024 年 6 月起,FCM 舊版 API 將不再受到支援,且將會淘汰。 若要避免推播通知服務中的任何中斷,您必須 儘快移轉至 FCM v1 通訊協定 。
FCM v1 的概念
- 支援新的平臺類型,稱為 FCM v1。
- FCM v1 會使用新的 API、認證、註冊和安裝。
注意
本文中現有的 FCM 平台稱為 FCM 舊版 。
移轉步驟
Firebase 雲端傳訊 (FCM) 舊版 API 將於 2024 年 7 月淘汰。 您可以在 2024 年 3 月 1 日開始從舊版 HTTP 通訊協定移轉至 FCM v1。 您必須在 2024 年 6 月前完成移轉。 本節說明使用通知中樞 REST API 從 FCM 舊版移轉至 FCM v1 的步驟。
REST API
下一節說明如何使用 REST API 執行移轉。
步驟 1:將 FCM v1 認證新增至中樞
第一個步驟是透過 Azure 入口網站、管理平面中樞作業或數據平面中樞作業來新增認證。
建立Google服務帳戶 JSON 檔案
在 Firebase 控制台中,選取您的項目,然後移至 [項目設定]。
選取 [ 服務帳戶 ] 索引標籤、建立服務帳戶,並從您的Google服務帳戶產生私鑰。
選取 [產生新的私鑰 ] 以產生 JSON 檔案。 下載並開啟檔案。 將、
private_key
和client_email
的值取代為 Azure 通知中樞認證更新所需的值project_id
。OR
如果您想要建立具有自定義訪問許可權的服務帳戶,您可以透過 IAM 和 管理員 > 服務帳戶頁面建立服務帳戶。 按兩下 [ 管理服務帳戶許可權],直接移至頁面。 您可以建立具有下列其中一個角色的服務帳戶:
- Firebase 管理員 (roles/firebase.admin)
- Firebase 成長 管理員 (roles/firebase.growth 管理員)
- Firebase 管理員 SDK 管理員 istrator 服務代理程式(roles/firebase.sdk 管理員 ServiceAgent)
- Firebase SDK 布建服務代理程式 (roles/firebase.sdkProvisioningServiceAgent)
選項 1:透過 Azure 入口網站 更新 FcmV1 認證
移至 Azure 入口網站 上的通知中樞,然後選取 [設定 > Google (FCM v1) 。 從從上一節取得的服務帳戶 JSON 檔案取得私鑰、專案識別碼和用戶端電子郵件值,並加以儲存以供日後使用。
選項 2:透過管理平面中樞作業更新 FcmV1 認證
請參閱 NotificationHub FcmV1Credential 的描述。
使用 API 版本:2023-10-01-preview
FcmV1CredentialProperties:
名稱 型別 clientEmail
字串 privateKey
字串 projectId
字串
選項 3:透過數據平面中樞作業更新 FcmV1 認證
- 使用 API 版本:2015-01
- 請務必將 FcmV1Credential 放在 GcmCredential 之後,因為順序很重要。
例如,以下是要求本文:
<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
請參閱 建立或覆寫安裝 並設定 platform
為 FCMV1
。
步驟 3:傳送推播通知
選項 1:偵錯傳送
使用此程式來測試選項 2、3 或 4 之前的通知。 請參閱 通知中樞 - 偵錯傳送。
注意
使用 API 版本:2023-10-01-preview。
在標頭中:
要求標頭 | 值 |
---|---|
Content-Type |
application/json;charset=utf-8 |
ServiceBusNotification-Format |
設定為 fcmV1 或 template |
Servicebusnotification-Tags |
{單一標記標識符} |
透過偵錯傳送來測試具有下列結構的承載。 請注意,FcmV1 會在 JSON 訊息承載結構中引入重大變更:
- 整個承載在訊息物件下移動。
- Android 特定選項已移至 Android 物件,且
time_to_live
現在ttl
具有字串值。 - 欄位
data
現在只允許一般字串對字串對應。 - 如需詳細資訊,請參閱 FCM 參考。
或者,您可以透過 Azure 入口網站 執行測試傳送(偵錯傳送):
選項 2:直接傳送
執行直接傳送。 在要求標頭中,將設定 ServiceBusNotification-Format
為 fcmV1
。
選項 3:FcmV1 原生通知 (觀眾傳送)
執行 FcmV1 原生通知傳送。 請參閱 傳送Google雲端通訊 (GCM) 原生通知。 在要求標頭中,將設定 ServiceBusNotification-Format
為 fcmV1
。 例如,在要求本文中:
{
"message": {
"notification": {
"title": "Breaking News",
"body": "FcmV1 is ready."
},
"android": {
"data": {
"name": "wrench",
"mass": "1.3kg",
"count": "3"
}
}
}
}
選項 4:範本通知
您可以在新的 JSON 承載結構之後,使用新的要求主體來測試範本傳送。 不需要進行其他變更。 請參閱 傳送範本通知。