Javascript AMAZON SNS使用Node js将通知有效负载推送到android mobile
使用NodeJS中的Javascript AMAZON SNS使用Node js将通知有效负载推送到android mobile,javascript,node.js,amazon-web-services,amazon-sns,Javascript,Node.js,Amazon Web Services,Amazon Sns,使用NodeJS中的aws-sdk包向android设备实现Amazon-SNS推送通知。我有下面提到的几个实现。移动设备正在显示推送通知。我想在有效负载中发送数据和通知对象 let payload2 = JSON.stringify({ default: 'Naresh', GCM: JSON.stringify({ notification : { body : 'great match!', title : 'Portugal vs. Denmar
aws-sdk
包向android设备实现Amazon-SNS推送通知。我有下面提到的几个实现。移动设备正在显示推送通知。我想在有效负载中发送数据和通知对象
let payload2 = JSON.stringify({
default: 'Naresh',
GCM: JSON.stringify({
notification : {
body : 'great match!',
title : 'Portugal vs. Denmark'
},
data:{
testdata: 'Check out these awesome deals!',
url: 'www.amazon.com'
}
})
});
它没有发送推送通知
let payload1 = {
"GCM": "{
\"notification\": {
\"title\": \"this one last test in app\",
\"body\": \"mm hello tests\"
},
\"data\": {
\"turnclass\": \"efwfwe\",
\"flight\": \"truejet\"}
}"
};
sns.publish({ TargetArn: targetArn,
Message: payload1,
MessageStructure: 'json'
}, (error, data) => (error) ? reject(error) : resolve(data));
它正在发送推送通知
let payload1 = {
"GCM": "{
\"notification\": {
\"title\": \"this one last test in app\",
\"body\": \"mm hello tests\"
},
\"data\": {
\"turnclass\": \"efwfwe\",
\"flight\": \"truejet\"}
}"
};
sns.publish({ TargetArn: targetArn,
Message: payload1,
MessageStructure: 'json'
}, (error, data) => (error) ? reject(error) : resolve(data));
发送推送通知的正确格式是什么?根据文档: 使用Amazon发送消息中特定于平台的有效负载时 SNS控制台,数据必须是键值对字符串,格式为 带引号的JSON被转义 例如:
{
"GCM":"{
"data":{
"message":"Check out these awesome deals!",
"url":"www.amazon.com"
}
}"
}
在第一个有效负载中执行的操作将产生以下输出:
{"default":"Naresh","GCM":"{\"notification\":{\"body\":\"great match!\",\"title\":\"Portugal vs. Denmark\"},\"data\":{\"testdata\":\"Check out these awesome deals!\",\"url\":\"www.amazon.com\"}}"}
这不是一种有效的格式。这是因为您是双重JSON.stringify
对象的一部分。因此,如果你这样做:
let payload2 = JSON.stringify({
default: 'Naresh',
GCM: {
notification: {
body: 'great match!',
title: 'Portugal vs. Denmark'
},
data: {
testdata: 'Check out these awesome deals!',
url: 'www.amazon.com'
}
}
});
它将产生:
{"default":"Naresh","GCM":{"notification":{"body":"great match!","title":"Portugal vs. Denmark"},"data":{"testdata":"Check out these awesome deals!","url":"www.amazon.com"}}}
这应该会像预期的那样起作用。嗨,@Naresh Kumar。您是否能够通过以下答案解决您的问题?