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.

步骤 6:使用 Amazon SNS 和 Baidu 向移动终端节点发送推送通知消息

本部分描述如何将推送通知消息发送到您的移动终端节点。将收集的先决条件信息添加到 AWS 示例文件 SNSMobilePush.java,该文件包含在 snsmobilepush.zip 文件中。SNSMobilePush.java 文件中包含有关如何创建移动终端节点并使用消息属性来构造消息的示例。有关如何创建移动终端节点和将消息属性用于 Baidu 的其他信息和示例,请参阅 针对 Baidu 创建 Amazon SNS 终端节点使用消息属性来构造消息

注意

下面的步骤使用 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 并取消注释 sample.demoBaiduAppNotification(); 。如下所示:

    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();
  2. 找到 demoBaiduAppNotification 方法并输入 Baidu 发送给您的用户 ID 和通道 ID,用作 userId 和 channelId 字符串的值。举例来说,看起来应如下所示:

    Copy
    String userId = "EXAMPLE-kLMchcX0v3xOxWVhG6TfdBp...KT2TGkvnKyTvLuSpzK_qsHgxVB_UpmcUa7Gl6g3EXAMPLE"; String channelId = "EXAMPLE<channelId>EXAMPLE";
  3. 输入您的应用程序的私有密钥。举例来说,看起来应如下所示:

    Copy
    String secretKey = "EXAMPLE<secretkey>EXAMPLE";
  4. 输入您应用程序的 API 密钥。举例来说,看起来应如下所示:

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

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

    Copy
    =========================================== Getting Started with Amazon SNS =========================================== {PlatformApplicationArn: arn:aws:sns:us-west-2:111122223333:app/BAIDU/TestApp} {EndpointArn: arn:aws:sns:us-west-2:111122223333:endpoint/BAIDU/TestApp/8f3fdf0d-520b-38d1-8ed2-3301a477eef3} {Message Body: {"BAIDU":"{\"title\":\"New Notification Received from SNS\",\"description\":\"Hello World!\"}"}} {Message Attributes: ("AWS.SNS.MOBILE.BAIDU.MessageKey": "default-channel-msg-key"),("AWS.SNS.MOBILE.BAIDU.DeployStatus": "1"),("AWS.SNS.MOBILE.BAIDU.MessageType": "0")} Published! {MessageId=56a3a3e6-4b4b-59b4-8d1d-eff592c0ffa1}

    在您的 Android 设备上,您应该会看到一条推送通知消息显示在 Android 应用程序中,类似以下内容: