我想在 Amazon Simple Notification Service(Amazon SNS)中创建一个平台应用程序,用于向 Android 设备发送推送通知。
Amazon SNS 推送通知并非在所有 AWS 区域都可用。有关详细信息,请参阅移动应用程序支持的区域。
先决条件:您必须有 Firebase 项目以及已向 Firebase 注册的有效 Android 应用。有关说明,请参阅 Firebase 网站上的步骤 1: 创建 Firebase 项目并注册应用。您还必须拥有来自 Firebase Cloud Messaging (FCM) 的有效凭证,包括 FCM 项目令牌凭证。
完成以下步骤:
创建新的平台应用程序时,选择基于令牌的身份验证,以允许 Amazon SNS 使用 Google FCM HTTP v1 API。如果您的平台应用程序使用已弃用的旧版 FCM API,请升级您的应用程序以使用基于令牌的身份验证。有关详细信息,请参阅 Firebase 网站上的从旧版 FCM API 迁移到 HTTP v1。
您可以使用 Amazon SNS 控制台、AWS 命令行界面 (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 平台应用程序发送推送通知,请参阅移动推送通知。
如何使用 Amazon Web Services CLI 在 Amazon SNS 中创建用于发送推送通知的 APN 平台应用程序?
Adding device tokens or registration IDs
Publishing to a mobile device
Publishing to a topic
Platform response codes