我试图通过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": ""
}
}
}
答案 0 :(得分:1)
即使您确实拥有有效的JSON格式,您也可能没有有效的JSON块来满足后端的期望。对于上面使用的模型架构,它们包含了所有可选值以显示正确的格式。您应该只包括要使用的参数,否则可能会导致问题。例如,使用MBaaS推送,您只能发送给一个目标,例如标签,设备,消费者或平台。您是否可以尝试使用基本JSON主体发送推送,例如:
{
"message": {
"alert": "testing",
"url": ""
},
"target":{
"deviceIds":[
"ENTER_VALID_DEVICE_ID_HERE"
]
}
}
在设置有效的appID和appSecret之后,我能够使用API文档(Swagger文档)向上面的主体发送推送通知。