【问题标题】:AMAZON SNS Push notification payload to android mobile using Node js亚马逊 SNS 使用 Node js 将通知有效负载推送到 android 手机
【发布时间】:2017-12-01 07:42:36
【问题描述】:

使用 NodeJS 中的 aws-sdk 包将 Amazon SNS 推送通知实现到 Android 设备。我有几个下面提到的实现。移动设备正在显示推送通知。我想在有效负载中发送数据和通知对象。

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));

发送推送通知的正确格式是什么?

【问题讨论】:

  • 嗨,@Naresh Kumar。您是否能够通过以下答案解决您的问题?

标签: javascript node.js amazon-web-services amazon-sns


【解决方案1】:

根据文档:

使用 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"}}}

这应该可以按预期工作。

【讨论】:

    猜你喜欢
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-14
    • 2021-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多