如何在 node.js 中集成 FCM 以进行推送通知?
Posted
技术标签:
【中文标题】如何在 node.js 中集成 FCM 以进行推送通知?【英文标题】:How to integrate FCM in node.js for push notifications? 【发布时间】:2019-02-07 04:34:57 【问题描述】:我想在 Node.js 中使用 FCM 添加推送通知。为此我尝试了this
和this 和also this
我的nodejs代码
var FCM = require('fcm-node');
var serverkey = 'SERVERKEY';
var fcm = new FCM(serverkey);
var message =
to : req.body.userToken,
collapse_key : 'XXX',
data :
my_key: 'my value', contents: "abcv/"
,
notification :
title : 'Title of the notification',
body : 'Body of the notification'
;
fcm.send(message, function(err,response)
if(err)
console.log(message);
console.log("Something has gone wrong !");
else
console.log("Successfully sent with resposne :",response);
);
每当我尝试运行此代码并启动我的服务器时,我总是在控制台中收到此错误。
/var/www/html/chatApp/node_modules/fcm-node/lib/fcm.js:10
function FCM(accountKey, proxy_url=null)
^
SyntaxError: Unexpected token =
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/var/www/html/chatApp/node_modules/fcm-node/index.js:1:80)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
谁能解释一下我做错了什么?
【问题讨论】:
【参考方案1】:我使用 firebase-admin 包发送通知 (https://firebase.google.com/docs/cloud-messaging/admin/send-messages)
var admin = require("firebase-admin");
var serviceAccount = require("./firebase-adminSDK.json");
admin.initializeApp(
credential: admin.credential.cert(serviceAccount),
);
const messaging = admin.messaging()
var payload =
notification:
title: "This is a Notification",
body: "This is the body of the notification message."
,
topic: 'topic'
;
messaging.send(payload)
.then((result) =>
console.log(result)
)
firebase-adminSDK.json可以按照https://firebase.google.com/docs/admin/setup#add_firebase_to_your_app中的步骤下载
此代码将向主题“topic”发送通知,但是,firebase-admin 包允许向特定设备发送通知。
【讨论】:
以上是关于如何在 node.js 中集成 FCM 以进行推送通知?的主要内容,如果未能解决你的问题,请参考以下文章
带有 Firebase (FCM) 推送通知的 Node js
FCM(Firebase 云消息传递):Firebase 推送通知在 Firefox 中显示,但在 Chrome 中不显示