我试图通过FCM从服务器发送通知 . 我从客户端获取firebase令牌 .
我是这样做的:
sendToAll:function (universal, callback) {
const data = {
"data": {
"body": universal.msg,
"title": universal.title
}
}
data['registration_ids'] = universal.token;
var myJSON = JSON.stringify(data);
console.log("complete input "+myJSON);
sendNotifications(data)
.then(function(result){
return callback(null, result);
}, function(err){
return callback(err);
});
}
};
//发送通知功能
function sendNotifications (data) {
return new Promise ( function (resolve, reject){
const dataString = JSON.stringify(data)
console.log("data is ",data);
const headers = {
'Authorization': 'key=<server-key>',
'Content-Type': 'application/json',
'Content-Length': dataString.length
}
const options = {
uri: 'https://fcm.googleapis.com/fcm/send',
method: 'POST',
headers: headers,
json: data
}
request(options, function (err, res, body) {
if (err) {
console.log("err notification is ",err);
return reject(err);
}else {
console.log("all done ", res.body);
return resolve(res.body.success);
}
});
});
}
//我的回应
{ multicast_id: 8252199123146257000,
0|www | success: 1,
0|www | failure: 0,
0|www | canonical_ids: 0,
0|www | results: [ { message_id: '0:1514273270602698%43f639b3f9fd7ecd' } ] }
我收到了multicast_id,没有faliure和message_id,我认为这意味着服务器正在发出有效请求 . SO通知应发送给用户 . 我是通过邮递员提出要求的 . 但我仍然无法得到任何通知 .
我还尝试通过firebase控制台向同一令牌发送通知,它可以工作 . 这意味着客户端没有任何问题 .