我想在推送通知中将json有效负载发送到Windows phone 7+。我正在使用 MPNS 。 我正在使用 AWS SNS 服务发送推送通知。如果我发送一个字符串有效负载。一切都适用于字符串有效负载。我被 Json有效载荷困住了。
paylaod = {default: "None", MPNS: "<?xml version=\"1.0\" encoding=\"utf-8\"?><wp:Notification xmlns=\"WPNotification\"><wp:Toast><wp:Text1>SNS Test Message</wp:Text1></wp:Toast></wp:Notification>"}
resp = SNS.publish( target_arn: "arn:aws:sns:usXXXb64", message: paylaod.to_json, message_structure: 'json')
答案 0 :(得分:1)
我非常不熟悉Ruby语言,但在我看来,您的调用缺少消息属性,这对于基于JSON的MPNS消息是必需的。
这两个属性如下:
作为参考,属性如下:
属性名称:AWS.SNS.MOBILE.MPNS.Type
类型:字符串
可能的值:token
(对于图块通知),toast
或raw
属性名称:AWS.SNS.MOBILE.MPNS.NotificationClass
类型:字符串
可能的值:realtime
*,priority
,regular
(使用Java SDK实时为我工作)
所以你的最后一行应该是这样的:
resp = SNS.publish(
target_arn: "arn:aws:sns:usXXXb64",
message: paylaod.to_json,
message_structure: 'json',
message_attributes: {
"AWS.SNS.MOBILE.MPNS.Type" => {
data_type: "String",
string_value: "toast"
},
"AWS.SNS.MOBILE.MPNS.NotificationClass" => {
data_type: "String",
string_value: "realtime"
}
})
请注意,message_structure: 'json'
行同样重要。