添加设备令牌或注册 IDs - Amazon Simple Notification Service

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

添加设备令牌或注册 IDs

当您首次使用通知服务(例如 Apple 推送通知服务 (APNs) 和 Firebase Cloud Messaging (FCM))注册应用程序和移动设备时,通知服务会返回设备令牌或注册IDs信息。当您将设备令牌或注册添加IDs到 Amazon 时SNS,它们PlatformApplicationArnAPI将与一起使用,为应用程序和设备创建终端节点。当亚马逊SNS创建终端节点时,会返回一个EndpointArnEndpointArn这就是Amazon SNS 知道向哪个应用程序和移动设备发送通知消息的方式。

您可以使用以下方法向 Amazon IDs 添加设备令牌并SNS进行注册:

  • AWS 使用手动添加单个令牌 AWS Management Console

  • 使用上传多个代币 CreatePlatformEndpoint API

  • 从将来会安装您的应用的设备注册令牌

手动添加设备令牌或注册 ID
  1. 登录 Amazon SNS 控制台

  2. 在导航窗格中,选择 “推送通知”。

  3. 平台应用程序部分中,选择您的应用程序,然后选择编辑。如果您尚未创建平台应用程序,请立即创建一个。有关如何执行此操作的说明,请参阅 创建平台应用程序

  4. 选择添加端点

  5. Endpoint Token (终端节点令牌) 框中,根据通知服务输入令牌 ID 或注册 ID。例如,使用ADM和FCM输入注册 ID。

  6. (可选)在 User Data(用户数据)中,输入要与终端节点关联的任意信息。亚马逊SNS不使用这些数据。数据必须采用 UTF -8 格式且小于 2KB。

  7. 选择添加端点

    使用创建的终端节点,您可以直接向移动设备发送消息,也可以向订阅主题的移动设备发送消息。

要上传多个令牌,请使用 CreatePlatformEndpoint API

以下步骤说明如何使用提供的示例 Java 应用程序(bulkupload软件包)将多个令牌(设备令牌或注册IDs)上传 AWS 到 Amazon SNS。您可以使用本示例应用帮助您开始上传现有令牌。

注意

以下步骤使用 Eclipse Java。IDE这些步骤假设您已安装 AWS SDK for Java 并且拥有自己的 AWS 安全证书 AWS 账户。有关更多信息,请参阅 AWS SDK for Java。有关凭证的更多信息,请参阅《AWS 一般参考》中的如何获取安全凭证?

  1. 下载并解压缩 snsmobilepush.zip 文件。

  2. 在 Eclipse 中创建一个新的 Java 项目。

  3. SNSSamples 文件夹导入到新建的 Java 项目的顶级目录中。在 Eclipse 中,右键选择 Java 项目的名称,然后选择 Import (导入),展开 General (常规),依次选择 File System (文件系统)Next (下一步),浏览到 SNSSamples 文件夹,选择 OK (确定),然后选择 Finish (完成)

  4. 下载 Ope n CSV 库的副本并将其添加到bulkupload软件包的构建路径中。

  5. 打开 bulkupload 包中包含的 BulkUpload.properties 文件。

  6. 将以下内容添加到 BulkUpload.properties 中:

    • 要向其添加终端节点的 ApplicationArn

    • 包含令牌CSV的文件位置的绝对路径。

    • 为记录 Amazon 正确SNS解析的令牌goodTokens.csv和失败的令牌而创建的CSV文件(例如和badTokens.csv)的名称。

    • (可选)在包含标记CSV的文件中指定分隔符和引号的字符。

    • (可选)用于同时创建终端节点的线程数量。默认值为 1 个线程。

    完成后的 BulkUpload.properties 与下文类似:

    applicationarn:arn:aws:sns:us-west-2:111122223333:app/FCM/fcmpushapp csvfilename:C:\\mytokendirectory\\mytokens.csv goodfilename:C:\\mylogfiles\\goodtokens.csv badfilename:C:\\mylogfiles\\badtokens.csv delimiterchar:' quotechar:" numofthreads:5
  7. 运行 BatchCreatePlatformEndpointSample .java 应用程序将令牌上传到亚马逊SNS。

    在此示例中,为成功上传到 Amazon 的令牌创建的终端节点SNS将被登录到goodTokens.csv,而格式错误的令牌将被记录到badTokens.csv。此外,您应该会看到写入 Eclipse 控制台的STDOUT日志,其中包含类似于以下内容的内容:

    <1>[SUCCESS] The endpoint was created with Arn arn:aws:sns:us-west-2:111122223333:app/FCM/fcmpushapp/165j2214-051z-3176-b586-138o3d420071 <2>[ERROR: MALFORMED CSV FILE] Null token found in /mytokendirectory/mytokens.csv
从将来会安装您的应用的设备注册令牌

您可以使用下面两个选项之一:

  • 使用 Amazon Cognito 服务:您的移动应用程序需要凭证才能创建与您的亚马逊SNS平台应用程序关联的终端节点。我们建议您使用会在一段时间后过期的临时凭证。对于大多数情况,我们建议您使用 Amazon Cognito 创建临时安全凭证。有关更多信息,请参阅 Amazon Cognito 开发人员指南。如果您希望在应用程序向亚马逊注册时收到通知SNS,则可以注册以接收将提供新终端节点的亚马逊SNS事件ARN。您也可以使用获取在 ListEndpointByPlatformApplication API Amazon 注册的终端节点的完整列表SNS。

  • Use a proxy server:如果您的应用程序基础设施已经过设置,可使您的移动应用程序在每次安装时进行调用和注册,则可以继续使用此设置。您的服务器将充当代理,并将设备令牌以及您想要存储的任何用户数据传递给 Amazon SNS 移动推送通知。为此,代理服务器将SNS使用您的 AWS 证书连接到 Amazon,并使用CreatePlatformEndpointAPI调用上传令牌信息。系统将返回新创建的终端节点 Amazon 资源名称 (ARN),您的服务器可以存储该终端节点,以便随后对亚马逊进行发布调用SNS。