IBM 推送通知:无效 Json
IBM Push Notification: Invalid Json
我尝试使用 https://mobile.ng.bluemix.net/imfpush/v1/apps/{appID}/devices/{deviceID} to push notification on this site: https://mobile.ng.bluemix.net/imfpush/#/,但出现错误消息
正文:
{ "alert" : "You have a request for payment."}
错误信息:
400 {
"code": "FPWSE0004E",
"message": "Bad Request - Invalid JSON."
}
并尝试通过在 nodejs 上调用 https 请求来使用
在我的代码中:
var message = {
alert : "You have a request for payment.",
url : "payment_id"
};
var headers = {
'Content-Type' : 'application/json',
'appSecret': 'xxxxxx',
"clientSecret": "xxxxxxxx"
'Content-Length' : Buffer.byteLength(message, 'utf8')
};
var options = {
host : 'mobile.ng.bluemix.net',
port : 443,
path : '/imfpush/v1/apps/'+appId +'/devices/'+deviceId,
method : 'PUT',
headers : headers,
data: JSON.stringify(message)
};
var reqPost = https.request(options, function(res) {
res.on('data', function(d) {
console.info('PUT result:\n');
process.stdout.write(d);
console.info('\n\PUTcompleted');
});
});
reqPost.end();
并通过邮递员致电API,我收到一条错误消息:无法得到任何回应。
请告诉我你的想法。
您似乎使用了错误的端点来发送推送通知。
下面是一个非常简单的示例,它使用 Node 中的轻量级请求库 superagent 向设备发送推送通知。
var request = require('superagent');
var baseUrl = 'https://mobile.ng.bluemix.net';
var message = {
"message": {
"alert": "Notification alert message"
}
};
request
.post(baseUrl + '/imfpush/v1/apps/' + appId + '/messages')
.send(message)
.set('Content-Type', 'application/json')
.set('Accept', 'application/json')
.set('appSecret', appSecret)
.end(function(err, res){
console.log(res.body) || console.log(err);
});
您只需要设置 appID
和 appSecret
(可能是外部设置)。
或者,如果您想发送至设备 ID,只需更改消息正文:
var message = {
"message": {
"alert": "Notification alert message"
},
"target": {
"deviceIds": [
deviceID
]
}
};
并设置deviceID
.
我尝试使用 https://mobile.ng.bluemix.net/imfpush/v1/apps/{appID}/devices/{deviceID} to push notification on this site: https://mobile.ng.bluemix.net/imfpush/#/,但出现错误消息
正文:
{ "alert" : "You have a request for payment."}
错误信息:
400 {
"code": "FPWSE0004E",
"message": "Bad Request - Invalid JSON."
}
并尝试通过在 nodejs 上调用 https 请求来使用
在我的代码中:
var message = {
alert : "You have a request for payment.",
url : "payment_id"
};
var headers = {
'Content-Type' : 'application/json',
'appSecret': 'xxxxxx',
"clientSecret": "xxxxxxxx"
'Content-Length' : Buffer.byteLength(message, 'utf8')
};
var options = {
host : 'mobile.ng.bluemix.net',
port : 443,
path : '/imfpush/v1/apps/'+appId +'/devices/'+deviceId,
method : 'PUT',
headers : headers,
data: JSON.stringify(message)
};
var reqPost = https.request(options, function(res) {
res.on('data', function(d) {
console.info('PUT result:\n');
process.stdout.write(d);
console.info('\n\PUTcompleted');
});
});
reqPost.end();
并通过邮递员致电API,我收到一条错误消息:无法得到任何回应。 请告诉我你的想法。
您似乎使用了错误的端点来发送推送通知。
下面是一个非常简单的示例,它使用 Node 中的轻量级请求库 superagent 向设备发送推送通知。
var request = require('superagent');
var baseUrl = 'https://mobile.ng.bluemix.net';
var message = {
"message": {
"alert": "Notification alert message"
}
};
request
.post(baseUrl + '/imfpush/v1/apps/' + appId + '/messages')
.send(message)
.set('Content-Type', 'application/json')
.set('Accept', 'application/json')
.set('appSecret', appSecret)
.end(function(err, res){
console.log(res.body) || console.log(err);
});
您只需要设置 appID
和 appSecret
(可能是外部设置)。
或者,如果您想发送至设备 ID,只需更改消息正文:
var message = {
"message": {
"alert": "Notification alert message"
},
"target": {
"deviceIds": [
deviceID
]
}
};
并设置deviceID
.