本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
添加设备令牌或注册 IDs
当您首次使用通知服务(例如 Apple 推送通知服务 (APNs) 和 Firebase Cloud Messaging (FCM))注册应用程序和移动设备时,通知服务会返回设备令牌或注册IDs信息。当您将设备令牌或注册添加IDs到 Amazon 时SNS,它们PlatformApplicationArn
API将与一起使用,为应用程序和设备创建终端节点。当亚马逊SNS创建终端节点时,会返回一个EndpointArn
。EndpointArn
这就是Amazon SNS 知道向哪个应用程序和移动设备发送通知消息的方式。
您可以使用以下方法向 Amazon IDs 添加设备令牌并SNS进行注册:
-
AWS 使用手动添加单个令牌 AWS Management Console
-
使用上传多个代币
CreatePlatformEndpoint
API -
从将来会安装您的应用的设备注册令牌
手动添加设备令牌或注册 ID
-
登录 Amazon SNS 控制台
。 -
在导航窗格中,选择 “推送通知”。
-
在平台应用程序部分中,选择您的应用程序,然后选择编辑。如果您尚未创建平台应用程序,请立即创建一个。有关如何执行此操作的说明,请参阅 创建平台应用程序。
-
选择添加端点。
-
在 Endpoint Token (终端节点令牌) 框中,根据通知服务输入令牌 ID 或注册 ID。例如,使用ADM和FCM输入注册 ID。
-
(可选)在 User Data(用户数据)中,输入要与终端节点关联的任意信息。亚马逊SNS不使用这些数据。数据必须采用 UTF -8 格式且小于 2KB。
-
选择添加端点。
使用创建的终端节点,您可以直接向移动设备发送消息,也可以向订阅主题的移动设备发送消息。
要上传多个令牌,请使用 CreatePlatformEndpoint
API
以下步骤说明如何使用提供的示例 Java 应用程序(bulkupload
软件包)将多个令牌(设备令牌或注册IDs)上传 AWS 到 Amazon SNS。您可以使用本示例应用帮助您开始上传现有令牌。
注意
以下步骤使用 Eclipse Java。IDE这些步骤假设您已安装 AWS SDK for Java 并且拥有自己的 AWS 安全证书 AWS 账户。有关更多信息,请参阅 AWS SDK for Java
-
下载并解压缩 snsmobilepush.zip 文件。
-
在 Eclipse 中创建一个新的 Java 项目。
-
将
SNSSamples
文件夹导入到新建的 Java 项目的顶级目录中。在 Eclipse 中,右键选择 Java 项目的名称,然后选择 Import (导入),展开 General (常规),依次选择 File System (文件系统)、Next (下一步),浏览到SNSSamples
文件夹,选择 OK (确定),然后选择 Finish (完成)。 -
下载 Ope n CSV 库
的副本并将其添加到 bulkupload
软件包的构建路径中。 -
打开
bulkupload
包中包含的BulkUpload.properties
文件。 -
将以下内容添加到
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
-
-
运行 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,并使用
CreatePlatformEndpoint
API调用上传令牌信息。系统将返回新创建的终端节点 Amazon 资源名称 (ARN),您的服务器可以存储该终端节点,以便随后对亚马逊进行发布调用SNS。