Amazon Simple Notification Service
开发人员指南 (API Version 2010-03-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Apple Push Notification Service 入门

Apple Push Notification Service (APNS) 是一种使您将推送通知消息发送到 iOS 和 OS X 应用程序的服务。本节介绍如何获取 APNS 的先决条件以及如何使用 Amazon SNS 和 APNS 发送推送通知消息。

APNS 的先决条件

要使用 Amazon SNS 和 APNS 将推送通知发送到移动设备,需要获得:

  • 注册有 APNS 的 iOS 应用程序

  • APNS SSL 证书

  • 应用程序私有密钥

  • 设备令牌

如果您已经满足这些先决条件,则可使用 Amazon SNS 控制台或 Amazon SNS API 将推送通知消息发送到 iOS 应用程序。有关如何使用 Amazon SNS 控制台的更多信息,请参阅 使用 Amazon SNS 移动推送。有关如何使用 Amazon SNS API 的更多信息,请参阅使用 Amazon SNS 和 APNS 向 iOS 应用程序发送推送通知消息

步骤 1:创建 iOS 应用程序

要开始向 iOS 应用程序发送推送通知消息,您必须具有 Apple 开发人员账户,已创建应用程序 ID(应用程序标识符),已注册 iOS 设备,并且已创建了 iOS 配置文件。有关更多信息,请参阅 iOS Developer Library 中的本地和远程通知编程指南

注意

如果没有已向 APNS 注册的 iOS 应用程序,可使用 AWS 提供的示例 iOS 应用程序作为起始模板。有关更多信息,请参阅 步骤 5:获取设备令牌

步骤 2:获取 APNS SSL 证书

在使用 Amazon SNS API 时,Amazon SNS 需要 .pem 格式的应用程序 APNS SSL 证书。在使用 Amazon SNS 控制台时,您可以上传 .p12 格式的证书,Amazon SNS 会将其转换为 .pem 并显示在控制台中。使用 Mac 计算机上的 Keychain Access 应用程序可导出 APNS SSL 证书。有关该 SSL 证书的更多信息,请参阅 Apple Local and Push Notification Programming Guide (Apple 本地和推送通知编程指南) 的 Provisioning and Development (配置和开发)

下载 APNS SSL 证书

  1. Apple Developer web site (Apple 开发人员网站) 上,依次单击 Member Center (会员中心)Certificates, Identifiers and Profiles (证书、身份和配置文件)Certificates (证书)

  2. 选择为 iOS APNS 开发创建的证书,单击 Download (下载),然后保存该文件,它将具有 .cer 扩展名类型。

将 APNS SSL 证书由 .cer 格式转换为 .pem 格式

以下步骤使用 openssl 实用工具。

  • 在命令提示符下,键入以下命令。将 myapnsappcert.cer 替换为从 Apple 开发人员网站下载的证书的名称。

    Copy
    openssl x509 -in myapnsappcert.cer -inform DER -out myapnsappcert.pem

    将使用新建的 .pem 文件配置 Amazon SNS,用于发送推送通知消息。

步骤 3:获取应用程序私有密钥

Amazon SNS 需要 .pem 格式的应用程序私有密钥。使用 Mac 计算机上的 Keychain Access 应用程序导出应用程序私有密钥。

获取应用程序私有密钥

SSL 证书关联的私有密钥可从 Mac 计算机上的 Keychain Access 应用程序导出。这基于以下假设:您已将从 Apple 开发人员网站下载的 .cer 文件导入了 Keychain Access。要执行该操作,可将该 .cer 文件复制到 Keychain Access 或双击该 .cer 文件。

  1. 打开 Keychain Access,选择 Keys(密钥),然后突出显示应用程序私有密钥。

  2. 依次单击 File (文件)Export Items... (导出项目...),然后在 Save As: (另存为:) 字段中输入名称。

  3. 接受默认的 .p12 文件格式,然后单击 Save (保存)

    然后将 .p12 文件转换为 .pem 文件格式。

将应用程序私有密钥由 .p12 格式转换为 .pem 格式

  • 在命令提示符下,键入以下命令。将 myapnsappprivatekey.p12 替换为从 Keychain Access 导出的私有密钥的名称。

    Copy
    openssl pkcs12 -in myapnsappprivatekey.p12 -out myapnsappprivatekey.pem -nodes -clcerts

    将使用新建的 .pem 文件配置 Amazon SNS,用于发送推送通知消息。

步骤 4:验证证书和应用程序私有密钥

通过使用 .pem 证书和私有密钥文件连接 APNS,可以对它们进行验证。

通过连接 APNS 来验证证书和私有密钥

  • 在命令提示符下,键入以下命令。将 myapnsappcert.pemmyapnsappprivatekey.pem 替换为证书和私有密钥的名称。

    Copy
    openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert myapnsappcert.pem -key myapnsappprivatekey.pem

步骤 5:获取设备令牌

当您注册具有 APNS 的应用程序来接收推送通知消息时,会生成设备令牌(64 字节十六进制值)。下面的步骤介绍如何使用 AWS 提供的示例 iOS 应用程序从 APNS 获取设备令牌。可借助此示例 iOS 应用程序开始学习使用 Amazon SNS 推送通知。有关更多信息,请参阅 Apple Local and Remote Notification Programming Guide (Apple 本地和远程通知编程指南) 中的 Configuring Remote Notification Support (配置远程通知支持)

从 APNS 获取应用程序设备令牌

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

  2. 导航到 AppleMobilePushApp 文件夹,然后打开 iOS 7 and earlieriOS 8 文件夹。

  3. 在 Xcode 中,打开 AmazonMobilePush.xcodeproj 项目。

  4. 在 Xcode 中运行该应用程序。在输出窗口中可以看到显示的设备令牌,如下所示:

    Copy
    Device Token = <examp1e 29z6j5c4 df46f809 505189c4 c83fjcgf 7f6257e9 8542d2jt 3395kj73>

    注意

    在将设备令牌提交给 Amazon SNS 时,设备令牌中不要包含空格。

后续步骤

您现在应从 APNS 获得了将推送通知消息发送到移动终端节点所需的信息(SSL 证书、应用程序私有密钥和设备令牌)。现在,可通过使用 Amazon SNS 控制台或 Amazon SNS API 向设备上的 iOS 应用程序发送通知。