¿Cómo enviar Firebase Cloud Messaging desde un servidor de nodo?

¿Hay alguna forma de enviar notificaciones de FCM desde un servidor node.js ?

No he encontrado nada al respecto dentro de la documentación.

El envío de mensajes a través de Firebase Cloud Messaging implica llamar a un punto final HTTP como se describe en la documentación sobre el envío de mensajes en sentido descendente .

Algo tan simple como esto podría hacer el truco:

 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'} ); 

Actualización (abril de 2017): ahora también puede ejecutar código muy similar a este en Cloud Functions for Firebase. Consulta https://firebase.google.com/docs/functions/use-cases#notify_users_when_something_interesting_happens.

 //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");