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 SNS 控制台或 API 在消息中将自定义平台特定负载发送到移动设备。以下部分介绍如何使用 Amazon SNS 控制台为每个支持的通知服务创建和发送自定义平台特定负载。有关使用 Amazon SNS API 的信息,请参阅使用 Amazon SNS 移动推送 API 和 AWS 示例文件 SNSMobilePush.java(包含在 snsmobilepush.zip 文件中)。

JSON 格式化消息数据

使用 Amazon SNS 控制台在消息中发送平台特定负载时,数据必须是键-值对字符串并格式化为 JSON(引号进行转义)。以下示例(包括为便于阅读而使用的格式设置和空格)演示一个用于 GCM 平台的示例自定义消息,该消息在消息正文中包含键-值对,并格式化为 JSON。

Copy
{ "GCM":"{ "data":{ "message":"Check out these awesome deals!", "url":"www.amazon.com" } }" }

使用控制台发送消息时,引号必须进行转义 (\"),如以下示例所示。

Copy
{ "GCM":"{ \"data\":{ \"message\":\"Check out these awesome deals!\", \"url\":\"www.amazon.com\" } }" }

在 Amazon SNS 控制台中输入时,示例应类似于以下内容:

Copy
{ "GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}" }

平台特定键-值对

除了以键-值对形式发送自定义数据之外,还可以在 JSON 负载中发送平台特定键-值对。例如,如果您要在 data GCM 参数中包括的自定义键-值数据对后包含 time_to_livecollapse_key GCM 参数,则无转义引号的 JSON 负载应类似于以下内容:

Copy
{ "GCM":"{ "data":{ "message":"Check out these awesome deals!", "url":"www.amazon.com" }, "time_to_live": 3600, "collapse_key": "deals" }" }

在 Amazon SNS 控制台中输入时,示例应类似于以下内容:

Copy
{ "GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"},\"time_to_live\": 3600,\"collapse_key\":\"deals\"}" }

有关 Amazon SNS 中支持的每个推送通知服务的受支持键-值对列表,请参阅以下链接:

在多个平台上发送给应用程序的消息

要为多个平台(如 GCM 和 APNS)向设备上安装的应用程序发送消息,必须先使移动终端节点订阅 Amazon SNS 中的某个主题,然后向该主题发布消息。以下示例显示在 APNS、GCM 和 ADM 上发送给已订阅的移动终端节点的消息。

Copy
{ "default": "This is the default message which must be present when publishing a message to a topic. The default message will only be used if a message is not present for one of the notification platforms.", "APNS": "{\"aps\":{\"alert\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\"} }", "GCM":"{\"data\":{\"message\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}", "ADM": "{ \"data\": { \"message\": \"Check out these awesome deals!\",\"url\":\"www.amazon.com\" }}" }