概觀
本教學課程旨在協助您快速開始使用具有推播通知的 Android PlayFab 整合。 推播通知需要在多個系統中進行設定。開始之前,讓我們先討論基礎結構的運作方式。此程序中有 4 個實體參與:- Google Play 服務
- Firebase 雲端通訊服務 (FCM,建置在舊版 Google 雲端通訊之上。)
- PlayFab 服務
- 用戶端應用程式
1. Google Play 服務
Google Play 服務會使用套件名稱來識別您在 Play 商店上的頁面。 例如:com.bob.games.matchthree。 在 Google Play 中註冊後,套件名稱會成為唯一的應用程式識別碼,並有多種用途,從透過 Play 商店安裝到防止冒用都包括在內。2. Firebase 雲端通訊 (FCM)
Firebase 雲端通訊服務為您提供一個以雲端為基礎的系統,用於傳送、導向和遞送推播通知。 它也允許其他服務 (例如 PlayFab) 使用 FCM 伺服器金鑰代表您傳送推播通知。3. PlayFab 服務
PlayFab 服務接著會使用 FCM 伺服器金鑰將推播通知傳送給您的用戶端。4. 用戶端服務
最後,您的用戶端應用程式可以接收通知,並視需要進行處理。四方分工
因此,我們需要設定 4 個不同的系統。為此,我們的教學課程分為 4 章,分別涵蓋每個部分的設定。設定系統的順序很重要。
必要條件
- 您必須擁有 Google 帳戶。
- 您必須擁有 PlayFab 帳戶。
- 使用 Android Asset Studio Notification icon generator 產生的通知圖示。
情境
在本教學課程的這一節中,我們將組建一個名為 Foo PlayFab App 的應用程式。這是一個具有下列功能的 Android 應用程式:- 它使用 Android 裝置識別碼登入 PlayFab。
- 它接收來自 PlayFab 的推播通知。
依照本教學課程操作時,請務必使用您自己的套件名稱和遊戲。
第 1 章:設定 Firebase
您可以使用 Firebase 的官方主控台頁面開始設定 Firebase。您會看到一個可以新增專案的頁面。- 若要執行此操作,請選取 Add project 區域,如下圖所示。

- 系統會要求您提供 Project Name (在本教學課程中,我們使用 Foo PlayFab App,但依照本教學課程操作時,請務必想出您自己的名稱)。
- 選取 Create Project 按鈕以前往下一個步驟。

- 選取如下圖所示的區域,將新的 Android 應用程式新增至專案。

- 首先,您必須提供 Android Package Name。我們使用 com.foo.playfab.app,但依照本教學課程操作時,請務必想出您自己的套件名稱。
- 選取 Register App 按鈕以前往下一個步驟。

- 下載後,選取 Continue 按鈕以前往下一個步驟。

- 最後一個步驟提供如何設定建置程序以連接 Firebase 和 Google Play SDK 的資訊。
您可以忽略此資訊,因為我們將使用 Android Studio 內建的自動化工具,它會自動執行此設定。
- 選取 Finish 按鈕以繼續。

- 新增應用程式後,它會出現在儀表板上。
- 此時,設定已完成,我們需要擷取 FCM 伺服器金鑰 (我們將使用它來連接 PlayFab 推播通知)。
- 前往 Project settings,如下圖所示。

- 在 Project settings 中,瀏覽至 Cloud Messaging 索引標籤。
- 找到 Server Key 區域 (下圖中的紅色區域)。
- 複製此金鑰並將其儲存在安全且容易存取的位置。

第 2 章:設定 Google Play 主控台
當您的應用程式準備就緒時,您很可能會建立 Google 主控台專案來維護產品的 Play 商店頁面。讓我們逐步完成建立 Google Play 專案並將其連結至 Firebase 專案的程序。 首先,造訪 Google Play 主控台頁面並建立新專案,如下圖所示。
- 指派 Title。
在此範例中,我們使用 Foo PlayFab App。依照本教學課程操作時,請務必想出您自己的標題和套件名稱。
- 選取 Create 按鈕以繼續。

- Google Play 主控台專案頁面隨即開啟。
- 在側邊功能表上選取 Services & APIs。

- Services configuration 頁面隨即開啟。
- 找到 Firebase Cloud Messaging 面板。
- 選取 Link a Sender ID 按鈕,如下圖所示。

- 使用您在上一章中使用 Firebase 主控台時收到 (並儲存) 的 FCM 伺服器金鑰。
- 完成後,選取 Link 按鈕,如我們的範例所示。

- 請花點時間確認 Google Play 主控台中顯示的 Sender ID 與 Firebase 主控台中的相符,如下列範例所示。

第 3 章:設定 PlayFab 遊戲
本章的目的是向您展示如何設定 PlayFab 服務,讓它可以代表您將推播通知傳送給玩家。- 首先,您必須前往遊戲 Settings 功能表中的 Title settings。
- 選取 Push Notifications 索引標籤。
- 針對 Android 選項,選取 Settings 圖示。

- 系統會要求您提供 Google server API key。
- 複製您透過 Firebase 主控台收到的金鑰,如下列範例所示。

- 如果一切正確,您會看到一個頁面,顯示 Push Notifications 為 Active。

第 4 章:設定 Android Studio 專案
若要使用 PlayFab JavaSDK,您需要 PlayFab Client JavaSDK 及其相依性 Google GSON。- 在此處下載 PlayFab 用戶端 JavaSDK JAR 程式庫。
-
尋找
client-sdk-*.jar,如有需要,也可尋找對應的 Java Doc。 - 下載最新的 Google GSON。
-
尋找
gson-*.jar。 - 將先前提到的 .jar 檔案放在手邊。
- 確認 Package name 與您在整個教學課程中使用的名稱相符 (例如在 Firebase 中)。
在此範例中,我們使用 com.foo.playfab.app,但依照本教學課程操作時,請記得想出您自己的套件名稱和標題。

- 選取您所選的 Minimum SDK。
- 然後選取 Next 按鈕。

- 選取您要使用的範本。
- 然後選取 Next 按鈕。

- 依您的需求設定範本。
- 選取 Finish 按鈕。

- 切換至 Project 索引標籤 (1)。
在上一章中,您從 Firebase 主控台下載了
google-services.json 設定檔案。請在下一個步驟中使用它。- 確認此檔案位於 App 資料夾 (2) 下。
- 然後,瀏覽至 Tools (3)。
- 選取 Firebase (4),如下列範例所示。

- 找到 Cloud Messaging 資料夾,然後選取 Set up Firebase Cloud Messaging,如下所示。

- 在 Firebase Notifications Assistant 中,選取 Add FCM to your app (1) 按鈕,如下圖所示。
- 隨即開啟一個對話方塊,指出將透過 Gradle 新增新的相依性。
- 選取 Accept Changes (2) 以授與變更。
遺憾的是,Gradle 同步程序 (3) 自動新增的相依性不正確,並會回報失敗!
-
若要正確設定相依性,請將自動新增的語句取代為下列內容:
implementation 'com.google.firebase:firebase-core:16.0.3
implementation 'com.google.firebase:firebase-messaging:17.0.0

- 確認 Firebase Notifications Assistant 指出相依性現在已正確設定 (1)。
在本章開頭,我們取得了必要的 JAR 檔案。通常,建置檔案會自動擷取這些檔案。
- 若要確保這些 JAR 檔案列在 app/libs 資料夾 (2) 下,請選取所有檔案並以滑鼠右鍵按一下。
- 然後選擇 Add as library… (3),如下列範例所示。

- 使用 Android Asset Studio Notification icon generator 準備圖示,並將其放在 app/src/main/res 內。
- 在下列範例中,圖示名為 ic_stat_blur_on。

- 最後,選取 Rebuild Project。

- app/src/main/AndroidManifest.xml
- app/src/main/java/..packagePath../MainActivity.java
- app/src/main/java/..packagePath../FooAppFirebaseInstanceIdService.java
- app/src/main/java/..packagePath../FooAppFirebaseMessagingService.java
目前的實作盡可能精簡,只是為了快速測試通知。如需高品質的最佳做法和更複雜的實作範例,請參考 FCM 指南。
AndroidManifest.xml
在下列程式碼中,將任何MY_PACKAGE_IDENTIFIER 預留位置取代為您自己的套件識別碼。
MainActivity.java
程式碼中的下列預留位置應根據您的情境進行取代。-
PLAYFAB_TITLE_ID- 使用您在 PlayFab Game Manager 中取得的遊戲識別碼。
-
PACKAGE_IDENTIFIER- 使用與您的設定相符的 Java 套件識別碼。
FooAppFirebaseInstanceIdService.java
下列程式碼中的預留位置應根據您的情境進行取代。PACKAGE_IDENTIFIER- 與您的設定相符的 Java 套件識別碼。
FooAppFirebaseMessagingService.java
下列程式碼中的預留位置應根據您的情境進行取代。PACKAGE_IDENTIFIER- 與您的設定相符的 Java 套件識別碼。
測試
此時,您應該可以將應用程式部署到裝置。- 啟動應用程式後,它會自動登入並註冊推播通知。
- 選取裝置上的 Home 按鈕以將應用程式最小化。這很重要,因為這樣我們才能測試送達系統匣的通知。
- 接著,前往您的 PlayFab 遊戲 Game Manager 頁面,並使用儀表板找出最新的 Push Registration。
- 選取 Player ID (1)。

- 選取 Send Push Notification 按鈕 (1)。
- 輸入 Title (2)。
- 輸入訊息本文 (3)。
- 選取 Send Push Notification 按鈕 (4) 以認可您的變更。

- 確認訊息已送達您的裝置。

