如何从节点服务器发送Firebase云消息传递?

时间:2016-06-24 15:12:08

标签: node.js firebase firebase-cloud-messaging

有没有办法从FCM服务器发送来自node.js的通知?

我在文档中找不到任何相关信息。

3 个答案:

答案 0 :(得分:30)

通过Firebase Cloud Messaging发送消息需要调用HTTP端点,如documentation on sending downstream messages中所述。

这样简单的事可以解决问题:

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

更新(2017年4月):您现在还可以在Cloud Functions for Firebase中运行与此非常相似的代码。见https://firebase.google.com/docs/functions/use-cases#notify_users_when_something_interesting_happens

答案 1 :(得分:9)

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

答案 2 :(得分:-1)

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

强调文字 您可以向ios和Android设备发送通知;