尽管有效输入,但MBaaS推送服务返回FPWSE0004E无效的JSON

时间:2015-06-23 14:01:33

标签: ibm-cloud

我试图通过API Documentation中的控制台将Push消息发布到Bluemix MBaaS端点。应用程序ID和密码都已设置,消息来自模型架构下的示例,并添加了设备ID。我的本地jsonlint安装调用此有效JSON,但我得到HTTP响应代码400:

{
  "message": "Bad Request - Invalid JSON",
  "docUrl": "http://www.ng.bluemix.net/docs/#troubleshoot/index-gentopic3.html",
  "code": "FPWSE0004E"
}

推送被列为' Up'在Status Page上。任何提示?

尝试的消息(设备ID已编辑):

{
  "message": {
    "alert": "ABCD",
    "url": ""
  },
  "target": {
    "deviceIds": [
      "xxxxxxxxxxxxxxxxxxxxxxxx"
    ],
    "tagNames": [
      ""
    ],
    "consumerIds": [
      {
        "consumerId": "",
        "alias": [
          ""
        ],
        "platforms": [
          ""
        ]
      }
    ],
    "platforms": [
      ""
    ]
  },
  "settings": {
    "gcm": {
      "payload": " JSON object"
    },
    "apns": {
      "payload": "JSON object",
      "badge": 0,
      "sound": "",
      "category": ""
    }
  }
}

1 个答案:

答案 0 :(得分:1)

即使您确实拥有有效的JSON格式,您也可能没有有效的JSON块来满足后端的期望。对于上面使用的模型架构,它们包含了所有可选值以显示正确的格式。您应该只包括要使用的参数,否则可能会导致问题。例如,使用MBaaS推送,您只能发送给一个目标,例如标签,设备,消费者或平台。您是否可以尝试使用基本JSON主体发送推送,例如:

{
     "message": {
       "alert": "testing",
         "url": ""
       },
      "target":{
        "deviceIds":[
       "ENTER_VALID_DEVICE_ID_HERE"
]
      }
}

在设置有效的appID和appSecret之后,我能够使用API​​文档(Swagger文档)向上面的主体发送推送通知。