Amazon Simple Notification Service
开发人员指南 (API Version 2010-03-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

Amazon Device Messaging 入门

Amazon Device Messaging (ADM) 是支持您将推送通知消息发送到 Kindle Fire 应用程序的服务。本部分介绍如何获取 ADM 的先决条件以及如何使用 Amazon SNS 和 ADM 发送推送通知消息。

ADM 先决条件

要使用 ADM 和 Amazon SNS 将推送通知发送到 Kindle Fire 应用程序,您需要以下几项:

  • 启用了 ADM 服务的 Kindle Fire 应用程序

  • 客户端 ID 和客户端密钥

  • API 密钥

  • 注册 ID

如果您已经具备这些先决条件,则可使用 Amazon SNS 控制台或 Amazon SNS API 将推送通知消息发送到 Kindle Fire 应用程序。有关如何使用 Amazon SNS 控制台的更多信息,请参阅 使用 Amazon SNS 移动推送。有关如何使用 Amazon SNS API 的更多信息,请参阅步骤 5:使用 Amazon SNS 和 ADM 将推送通知消息发送到 Kindle Fire 应用程序

步骤 1:创建一个启用了 ADM 服务的 Kindle Fire 应用程序

要将推送通知消息发送到 Kindle Fire 应用程序,您必须具有 Amazon 开发人员账户,已设置了开发环境,已创建了 Kindle Fire 应用程序(已启用 ADM),并且已向 ADM 注册了该应用程序。有关更多信息,请参阅将您的应用程序与 ADM 集成

创建 Kindle Fire 应用程序

  1. 按照创建账户中的说明创建 Amazon 开发人员账户。

  2. 为开发用于 Kindle Fire 平板电脑的移动应用程序设置您的开发环境。有关更多信息,请参阅设置您的开发环境

  3. 创建 Kindle Fire 应用程序。有关更多信息,请参阅创建您的第一个 Kindle Fire 应用程序

    注意

    如果您尚未向 ADM 注册 Kindle Fire 应用程序,则可将 AWS 提供的示例 Kindle Fire 应用程序作为模板作为起点。有关更多信息,请参阅 步骤 4:获取注册 ID

  4. Amazon App Distribution Portal (Amazon 移动应用分配门户) 上,单击 Apps and Services (应用程序和服务)、您 Kindle Fire 应用程序的名称,然后单击 Device Messaging (设备消息发送)

  5. 确认为应用程序启用了 ADM。如果在 Amazon App Distribution Portal 上没有列出您的应用程序,请添加它并启用 ADM。

步骤 2:获取客户端 ID 和客户端密钥

ADM 使用客户端 ID 和客户端密钥验证您的服务器的身份。有关更多信息,请参阅获取 ADM 证书

获取客户端 ID 和客户端密钥

  1. Amazon App Distribution Portal (Amazon 移动应用分配门户) 上,单击 Apps and Services (应用程序和服务)、您 Kindle Fire 应用程序的名称,然后单击 Security Profile (安全配置文件)。您应看到与您应用程序相关的安全配置文件。如果没有,请单击 Security Profiles (安全配置文件) 创建一个新的安全配置文件。

  2. 单击 View Security Profile (查看安全配置文件)。记录客户端 ID 和客户端密钥。

步骤 3:获取 API 密钥

ADM 使用 API 密钥来验证应用程序的身份。

注意

需要 API Key (API 密钥) 才能将预发布版或测试应用程序与 ADM 一起使用。但是,如果允许 Amazon 代表您登录您的应用程序,应用程序的发布或生产版本不需要该密钥。

获取 API 密钥

步骤 4:获取注册 ID

下面的步骤介绍如何使用 AWS 提供的示例 Kindle Fire 应用程序从 ADM 获取注册 ID。您可以以此示例 Kindle Fire 应用程序为例,帮助您开始使用 Amazon SNS 推送通知。示例应用程序要求在开发环境中包含 ADM JAR 文件 amazon-device-messaging-1.0.1.jar。有关更多信息,请参阅设置 ADM

从 ADM 获取应用程序的注册 ID

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

  2. KindleMobilePushApp 文件夹导入您的 IDE 中。在 Eclipse 中,单击 File (文件)Import (导入),展开 Android 文件夹,单击 Existing Android Code Into Workspace (现有的 Android 代码工作区),单击 Next (下一步),浏览到文件夹 KindleMobilePushApp,单击 OK (确定),然后单击 Finish (完成)

    将示例 Kindle Fire 应用程序导入 IDE 后,您需要将该 Kindle Fire 应用程序的 API 密钥添加到 strings.xml 文件,该文件包含在示例 Kindle Fire 应用程序中。

  3. 将该 API 密钥添加到 strings.xml 文件。在 IDE 中 res 文件夹的子文件夹 values (值) 中可以找到该文件。将该字符串添加到:

    Copy
    <string name="api_key"></string>
  4. 运行应用程序,查看输出到 Android 记录系统的注册 ID。如果使用具有 Android ADT 插件的 Eclipse,可在 LogCat 显示窗口中查看注册 ID。例如,包含注册 ID 的输出看起来将类似于:

    Copy
    amzn1.adm-registration.v2.Example...1cwWJUvgkcPPYcaXCpPWmG3Bqn-wiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw

您现在应从 ADM 获得了将推送通知消息发送到您的移动终端节点所需的信息(客户端 ID、客户端密钥、API 密钥和注册 ID)。您现在可通过使用 Amazon SNS 控制台或 Amazon SNS API 向设备上的 Kindle Fire 应用程序发送推送通知消息。要使用 Amazon SNS 控制台,请参阅使用 Amazon SNS 移动推送。要使用 Amazon SNS API,请参阅步骤 5:使用 Amazon SNS 和 ADM 将推送通知消息发送到 Kindle Fire 应用程序

步骤 5:使用 Amazon SNS 和 ADM 将推送通知消息发送到 Kindle Fire 应用程序

本部分介绍如何运用先决条件信息,利用 Amazon SNS 和 ADM 将推送通知消息发送到您的 Kindle Fire 应用程序。将收集的先决条件信息添加到 AWS 示例文件 SNSMobilePush.java,该文件包含在 snsmobilepush.zip 文件中。

注意

下面的步骤使用 Eclipse Java IDE。这些步骤假定您已经安装 AWS SDK for Java,并且您 AWS 账户拥有 AWS 安全证书。有关更多信息,请参阅 AWS SDK for Java。有关证书的更多信息,请参阅 AWS General Reference 中的如何获取安全证书?

将示例添加到 Eclipse

  1. 在 Eclipse 中创建一个新 Java 项目(File (文件) | New (新建) | Java Project (Java 项目))。

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

  3. 在 SNSSamples\src\com\amazonaws\sns\samples\mobilepush 文件夹中,打开 AwsCredentials.properties 文件并添加您的 AWS 安全证书。

将 AWS SDK for Java 添加到生成路径中

  1. 右键单击 Java 项目文件夹,单击 Build Path (生成路径),然后单击 Configure Build Path... (配置生成路径…)

  2. 单击 Libraries (库) 选项卡,然后单击 Add Library... (添加库…)

  3. 单击 AWS SDK for Java (适用于 Java 的 AWS 软件开发工具包),单击 Next (下一步),然后单击 Finish (完成)

将先决条件信息添加到 SNSMobilePush.java

  1. 在 SNSSamples\src\com\amazonaws\sns\samples\mobilepush 文件夹中,在 Eclipse 中打开 SNSMobilePush.java

  2. 取消 sample.demoKindleAppNotification(); 的注释。如下所示:

    Copy
    SNSMobilePush sample = new SNSMobilePush(sns); // TODO: Uncomment the services you wish to use. // sample.demoAndroidAppNotification(); sample.demoKindleAppNotification(); // sample.demoAppleAppNotification(); // sample.demoAppleSandboxAppNotification(); // sample.demoBaiduAppNotification(); // sample.demoWNSAppNotification(); // sample.demoMPNSAppNotification();
  3. 找到 demoKindleAppNotification 方法并输入 ADM 发送给您的注册 ID 作为注册 ID 字符串的值。举例来说,看起来应如下所示:

    Copy
    String registrationId = = "amzn1.adm-registration.v2.Example...1cwWJUvgkcPPYcaXCpPWmG3Bqn-wiqIEzp5zZ7y_jsM0PKPxKhddCzx6paEsyay9Zn3D4wNUJb8m6HXrBf9dqaEw";
  4. 输入应用程序的客户端 ID。举例来说,看起来应如下所示:

    Copy
    String clientId = "amzn1.application-oa2-client.EXAMPLE7423654b79fc9f062fEXAMPLE";
  5. 输入应用程序的客户端密钥。举例来说,看起来应如下所示:

    Copy
    String clientSecret = "EXAMPLE01658e75ceb7bf9f71939647b1aa105c1c8eaccabaf7d41f68EXAMPLE";
  6. 输入应用程序的名称。应用程序名称只能由大写和小写 ASCII 字母、数字、下划线、连字符和句点构成,长度必须为 1 到 256 个字符。举例来说,看起来应如下所示:

    Copy
    String applicationName = "admpushapp";
  7. 运行该 Java 应用程序。可以看到输出类似于 IDE 输出窗口中的内容:

    Copy
    =========================================== Getting Started with Amazon SNS =========================================== {PlatformApplicationArn: arn:aws:sns:us-west-2:111122223333:app/ADM/mypushappname} {EndpointArn: arn:aws:sns:us-west-2:111122223333:endpoint/ADM/mypushappname/97e9ced9-f136-3893-9d60-775467eafebb} {"ADM": "{ \"data\": { \"message\": \"ENTER YOUR MESSAGE\" } }"} Published. MessageId=b35fb4bz-b503-4e37-83d4-feu4218d6da6

    在 Kindle Fire 设备上,您可以看到 Kindle Fire 应用程序中显示一条推送通知消息。