Existe-t-il un moyen d'envoyer des notifications à partir de FCM
à partir d'un node.js
serveur?
Je n'ai rien trouvé à ce sujet dans la documentation.
L'envoi de messages via Firebase Cloud Messaging nécessite l'appel d'un point de terminaison HTTP comme décrit dans la documentation sur l'envoi de messages en aval .
Quelque chose d'aussi simple que cela pourrait faire l'affaire:
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'}
);
Mise à jour (avril 2017): vous pouvez désormais également exécuter du code très similaire à celui-ci dans Cloud Functions for Firebase. Voir 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");