无法找到我的req对象有什么问题。尝试在回调中发送推送通知时出现此错误。试图使用jslint.com链接我的请求数据,没有任何问题。为此已经抓了好几个小时!
{" link":null," message":"请求正文中的JSON无效。为空 JSON,传递' {}'。","输入":" UnprocessableEntity"}
我的代码如下:
var title = req.body.title,
message = req.body.message;
// Define relevant info
var ionic_api_token = 'eyJ0eXAiOTdGb-xQVQaD2sV7qTh7XNKCnwiJKV1QiLJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI2MjiNC03YjE5LTQ3MzMtYjJhMy0zM2Y3MjBkYzU4MjcifQ.s3e6pCwlVUBAs8kvbO';
var device_tokens = ['d44pDarVamnNJS2cNJ2modyBxjZZxcHLlnhQN4wZkJdbgkOw96rq9EEv2WCA5MKU6do0pJoO5rsmQsBAecFt4OIFB0hhD4Dp2K-uMbjum828j-8LKtpCTtGoIDBUvYI6L'];
var ionic_security_profile = 'main';
// Build the request object
var req = {
method: 'POST',
url: 'https://api.ionic.io/push/notifications',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + ionic_api_token
},
data: {
"tokens": device_tokens,
"profile": ionic_security_profile,
"notification": {
"title": title,
"message": message,
"android": {
"title": title,
"message": message
},
"ios": {
"title": title,
"message": message
}
}
}
};
function callback(error, response, body) {
console.log(body)
}
request(req, callback);
});
答案 0 :(得分:0)
唯一可能导致问题的是标题&消息对象(可能是字符串)。请尝试转义它,如下所示
function escapeJson(json) {
return JSON.parse(JSON.stringify(json));
}
title = escapeJson(title);
message = escapeJson(message);
var req = {
method: 'POST',
url: 'https://api.ionic.io/push/notifications',
headers: {
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + ionic_api_token
},
data: {
"tokens": device_tokens,
"profile": ionic_security_profile,
"notification": {
"title": title,
"message": message,
"android": {
"title": title,
"message": message
},
"ios": {
"title": title,
"message": message
}
}
}
};