我想在 Amazon Simple Notification Service (Amazon SNS) 中建立一個平台應用程式,以將推播通知傳送至 Android 裝置。
解決方案
並非所有 AWS 區域都可使用 Amazon SNS 推播通知。如需詳細資訊,請參閱行動應用程式支援的區域。
先決條件:您必須有一個 Firebase 專案和一個在 Firebase 註冊的有效 Android 應用程式。如需指示,請參閱 Firebase 網站上的步驟 1: 建立 Firebase 專案並註冊您的應用程式。您也必須擁有來自 Firebase Cloud Messaging (FCM) 的有效憑證,包括 FCM 專案權杖憑證。
擷取 FCM 專案的權杖憑證
完成下列步驟:
- 開啟 Firebase 控制台,然後選擇您的專案。
- 在導覽窗格中,選擇齒輪圖示,然後選擇 Project settings (專案設定)。
- 選擇 Service accounts (服務帳戶) 索引標籤。
- 選擇 Generate new private key (產生新的私密金鑰) 以下載 JSON 格式的私密金鑰檔案,以建立具有權杖型驗證的 Android 平台應用程式。
建立 Android 平台應用程式
建立新平台應用程式時,請選擇權杖型驗證,以允許 Amazon SNS 使用 Google FCM HTTP v1 API。如果您有使用已停用的舊版 FCM API 的平台應用程式,請升級您的應用程式以使用權杖型驗證。如需詳細資訊,請參閱 Firebase 網站上的從舊式 FCM API 移轉到 HTTP v1。
您可以使用 Amazon SNS 主控台、AWS Command Line Interface (AWS CLI) 或 Amazon SNS API 來建立平台應用程式。
使用 Amazon SNS 主控台
若要使用 Amazon SNS 主控台,請參閱建立平台應用程式。
對於 Push notification platform (推播通知平台),選擇 Firebase Cloud Messaging (FCM)。對於 Authentication method (驗證方法),選擇 Token (權杖)。然後,選擇 Choose file (選擇檔案) 以上傳 JSON 格式的私密金鑰檔案。
使用 AWS CLI
**注意事項:**如果您在執行 AWS CLI 命令時收到錯誤,請參閱對 AWS CLI 錯誤進行疑難排解。此外,請確定您使用的是最新的 AWS CLI 版本。
完成下列步驟:
-
您的檔案必須是字串格式,而且不能使用特殊字元。若要格式化檔案,請從 JSON 格式私密金鑰檔案所在的相同目錄執行下列命令:
SERVICE_JSON=`jq @json <<< cat "private_key_JSON_file"`
**注意事項:**將 private_key_JSON_file 取代為您的私密金鑰檔案名稱。
-
從金鑰檔案所在的相同目錄中執行 create-platform-application 命令:
aws sns create-platform-application --name Your_Application_Name --platform GCM --attributes PlatformCredential=$SERVICE_JSON
**注意事項:**將 Your_Application_Name 取代為您自己的應用程式名稱。
您平台應用程式的 ARN 會顯示在指令的輸出中。
範例:
{
"PlatformApplicationArn": "arn:aws:sns:us-east-1:XXXXXXXXXXXX:app/GCM/Your_Application_Name"
}
-
最佳實務是設定事件通知和交付狀態日誌記錄。
使用 Amazon SNS API
使用 CreatePlatformApplication API 操作。
傳送推送通知
若要使用 Android 平台應用程式傳送推送通知,請參閱行動推送通知。
相關資訊
如何建立 APN 平台應用程式,以使用 AWS CLI 在 Amazon SNS 中傳送推播通知?
新增裝置字符或註冊 ID
發佈至行動裝置
發佈至主題
平台回應碼