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

在消息中将自定义平台特定负载发送到移动设备

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

JSON 格式化消息数据

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

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

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

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

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

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

平台特定键-值对

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

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

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

{ "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 上发送给已订阅的移动终端节点的消息。

{ "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\" }}" }