Is there any way to send notifications from FCM
from a node.js
server?
I haven\'t found anything about it inside documentation.
//I done by this code using node- gcm module.
//We're using the express framework and the node-gcm wrapper
var express = require('express');
var gcm = require('node-gcm');
//init express
var app = express();
app.get('/push', function (req, res) {
var message = new gcm.Message({
data: { key1: 'hello' },
notification: {
title: 'SPECOZ Offers1',
body: 'body_data'
}
});
// Set up the sender with you API key, prepare your recipients' registration tokens.
var sender = new gcm.Sender('Api_Key');
sender.send(message, 'device_token', function (err, response) {
if (err) {
console.error("Error:", err);
}
else console.log("Response:", response);
res.send(response);
});
});
app.listen("pass the port number");
const admin = require('firebase-admin');
const payload = {
notification: {
title: 'this is title', body: 'this is body'
},
data: {
balance: 100,
priceplanId: 1235
}
}
const deviceToken ='yourtoekn' | ['yourtoekn'];
admin.messaging().sendToDevice(deviceToken, newpayload)
.then((_response) => console.log(_response))
.catch(error => console.log(error));
emphasized text You can send a notification to both ios and Android devices;
Sending messages through Firebase Cloud Messaging takes calling an HTTP end point as described in the documentation on sending downstream messages.
Something as simple as this could do the trick:
var request = require('request');
function sendMessageToUser(deviceId, message) {
request({
url: 'https://fcm.googleapis.com/fcm/send',
method: 'POST',
headers: {
'Content-Type' :' application/json',
'Authorization': 'key=AI...8o'
},
body: JSON.stringify(
{ "data": {
"message": message
},
"to" : deviceId
}
)
}, function(error, response, body) {
if (error) {
console.error(error, response, body);
}
else if (response.statusCode >= 400) {
console.error('HTTP Error: '+response.statusCode+' - '+response.statusMessage+'\n'+body);
}
else {
console.log('Done!')
}
});
sendMessageToUser(
"d7x...KJQ",
{ message: 'Hello puf'}
);
Update (April 2017): you can now also run code very similar to this in Cloud Functions for Firebase. See https://firebase.google.com/docs/functions/use-cases#notify_users_when_something_interesting_happens