如何使用 AWS CLI 建立用於在 Amazon SNS 中傳送推送通知的 APN 平台應用程式?

2 分的閱讀內容
0

我想在 Amazon Simple Notification Service (Amazon SNS) 中建立 Apple 推送通知服務 (APN) 平台應用程式以傳送推送通知。如何使用 AWS Command Line Interface (AWS CLI) 而非使用 Amazon SNS 主控台來建立 APN 平台應用程式?

簡短描述

若要使用 AWS CLI 在 Amazon SNS 中建立 APN 平台應用程式,請執行 create-platform-application 命令。

如需詳細資訊,請參閲 Amazon SNS API 參考文件中的 CreatePlatformApplication

**注意:**您也可以在 Amazon SNS 主控台中建立平台應用程式

解決方案

**注意:**並非所有 AWS 區域都可使用 Amazon SNS 推送通知。如需詳細資訊,請參閲支援行動應用程式的區域。如果您在執行 AWS CLI 命令時收到錯誤,請確認您使用的是最新版本的 AWS CLI

先決條件

您必須擁有適用於 iOS、VoIP 或 MacOS 的有效應用程式。根據您應用程式的身分驗證方法,您還必須從您的 Apple 開發人員帳戶中取得以下資源:

對於憑證型身分驗證

  • 有效的 TLS 憑證

對於令牌型身分驗證

  • 有效的令牌簽署金鑰
  • 有效的 Apple Team ID
  • 有效的 Apple Bundle ID

如需詳細資訊,請參閲《Amazon SNS 開發人員指南》中的 Amazon SNS 使用者通知先決條件Apple 身分驗證方法

使用 AWS CLI 在 Amazon SNS 中建立 APN 平台應用程式

對於憑證型身分驗證

1.    執行以下命令:

**重要:**將 Your_Application_Name 替換為應用程式名稱。將 Certificates.p12 替換為您的 PKCS #12 檔案。根據您的使用案例,將 platform (平台) 值替換為 APNS_SANDBOXAPNS。確認您在 PKCS #12 檔案所在的同一目錄中執行命令。

aws sns create-platform-application --name Your_Application_Name --platform APNS_SANDBOX --attributes PlatformCredential="\"$(openssl pkcs12 -in Certificates.p12 -nodes -nocerts)\"",PlatformPrincipal="\"$(openssl pkcs12 -in Certificates.p12 -nodes -nokeys)\""

**注意:**對於使用證書憑證的 Apple 服務,PlatformCredential 為私有金鑰。PlatformPrincipal 為 SSL 憑證。OpenSSL pkcs12 命令將 PKCS#12 檔案解析為可讀格式,用於憑證型身分驗證。如需詳細資訊,請參閲 OpenSSL 網站上的 pkcs12

此時將顯示輸入 import password (匯入密碼) 值的提示。

2.    對於 import password (匯入密碼),請輸入從 Keychain Access 應用程式匯出 PKCS #12 檔案時建立的密碼。

對於令牌型身分驗證

執行以下命令:

**重要:**將 PlatformCredential 取代為您的令牌簽署金鑰。將 PlatformPrincipal 取代為您的令牌簽署金鑰 ID。將 ApplePlatformTeamID 取代為您的 Apple Team ID。將 ApplePlatformBundleID 替換為您的 Apple Bundle ID。根據您的使用案例,將 platform (平台) 值替換為 APNS_SANDBOXAPNS。將 Token.p8 替換為您的 PKCS #8 檔案。確認您在 PKCS #8 檔案所在的同一目錄中執行命令。

aws sns create-platform-application --name token --platform APNS_SANDBOX --attributes ApplePlatformTeamID=XXXXXXX,ApplePlatformBundleID=com.XXXXX,PlatformPrincipal=XXXXXXX,PlatformCredential="\"$(openssl pkcs8 -in Token.p8 -nocrypt)\""

**注意:**對於使用令牌憑證的 Apple 服務,PlatformCredential 是令牌簽署金鑰。PlatformPrincipal 是令牌簽署金鑰 ID。OpenSSL pkcs8 命令以 PKCS#8 格式處理私有金鑰,並將其解析為可讀格式,以進行令牌型身分驗證。如需詳細資訊,請參閲 OpenSSL 網站上的 pkcs8

如需關於平台屬性的詳細資訊,請參閱 Amazon SNS API 參考文件中的SeePlatformApplicationAttributes


相關資訊

行動推送 API 錯誤

設置行動應用程式

行動推送 API 動作

AWS 官方
AWS 官方已更新 2 年前