From b107209f7aba1829422ec89a8a7a84733055c199 Mon Sep 17 00:00:00 2001 From: Frallatta Date: Thu, 5 Nov 2020 13:59:23 +0700 Subject: [PATCH] Simplify Send FCM --- index.js | 159 ++++++++++++++++++--------------------------------------------- 1 file changed, 46 insertions(+), 113 deletions(-) diff --git a/index.js b/index.js index 007adf6..1d83612 100644 --- a/index.js +++ b/index.js @@ -1,127 +1,60 @@ -const express = require('express'); -const path = require('path'); -const {google} = require('googleapis'); +const express = require("express"); +const path = require("path"); var admin = require("firebase-admin"); -var SCOPES = 'https://www.googleapis.com/auth/firebase.messaging'; const port = 3004; -var dirPath = path.join(__dirname , 'fcm_key'); - -var keyPath = require('./keypath.json'); - -for(key in keyPath){ - var data = keyPath[key]; - var jsonPath = path.join(dirPath , data.PATH); - var adminAuthToken = require(jsonPath); - admin.initializeApp({ - credential: admin.credential.cert(adminAuthToken), - databaseURL: data.DB_URL - },key); - - +var dirPath = path.join(__dirname, "fcm_key"); + +var keyPath = require("./keypath.json"); + +for (key in keyPath) { + var data = keyPath[key]; + var jsonPath = path.join(dirPath, data.PATH); + var adminAuthToken = require(jsonPath); + admin.initializeApp( + { + credential: admin.credential.cert(adminAuthToken), + databaseURL: data.DB_URL, + }, + key + ); } - const app = express(); -app.use(express.json({limit: '50mb'})); -app.use(express.urlencoded({limit: '50mb' ,parameterLimit: 1000000 , extended : true})); - - - -app.post('/sendFcm',async function(req,res){ - var dataReq = req.body; - var application = dataReq.application; - - var fcm = admin.app(application); - - var tokens = ["ckATQ13PdBc:APA91bF_RbWjE8gFcWoWqyRwLuh7GtDyQnx-l3DCVWyfEyWCXBgMWeK6Cca4FW2Wjltgwd5Sck7kI-0L9vR0i1MwRMbqu1--2AaMFaU9G6cwbkt0DCGI8nJ-JpMmShjA1kMHDMa-8BUI", - "e3S17M3ZMjU:APA91bEEb2otaSUV7Vu0hRxVCiCawxHXnc1E_PV1nxvSJOSxAL90SYGIOy_zbrsBJP-ewD0OgRQ44rfFDHF_ROQj3GKH8T5DfhUHeb4xPeVWc16kyF_NRyUvx3G_RDqgX4RYMKjfg6gs"] - var message = { - tokens : tokens, - notification :{ - title: 'MAKANM KANA', - body: 'EVERIBADINUW.' - }, - data : { - "click_action":"FLUTTER_NOTIFICATION_CLICK", - "message_id":"1", - "route":"/Pilihan", - "type":"NOTIFICATION" - } - } - fcm.messaging().sendMulticast(message) - .then((response) => { - console.log(response); +app.use( + express.json({ limit: "50mb", parameterLimit: 1000000, extended: true }) +); +app.use( + express.urlencoded({ limit: "50mb", parameterLimit: 1000000, extended: true }) +); + +app.post("/sendFcm", async function (req, res) { + try { + var message = req.body; + var fcm = admin.app(application.application); + + fcm + .messaging() + .sendMulticast(message) + .then((response) => { if (response.failureCount > 0) { - const failedTokens = []; - response.responses.forEach((resp, idx) => { - console.log('AAAA'); + const failedTokens = []; + response.responses.forEach((resp, idx) => { if (!resp.success) { - failedTokens.push(registrationTokens[idx]); + failedTokens.push(registrationTokens[idx]); } - }); - console.log('List of tokens that caused failures: ' + failedTokens); + }); } - return res.status(200).json({"STATUS" : "SUKSES" ,"DATA" : response}); - }).catch((error) => { - console.log('ERROR'); - return res.status(404).json({"STATUS" : "ERROR" ,"DATA" : error}); + return res.status(200).json(response); + }) + .catch((error) => { + return res.status(404).json(error); }); - - // var token = dataReq["to"]; - // if(token.length > 0){ - // // One Device - // if(typeof token == 'string'){ - // var message = { - // token : token, - // notification : dataReq.notification, - // data : dataReq.data - // } - // fcm.messaging().send(message) - // .then((response) => { - // // Response is a message ID string. - // return res.status(200).json({"STATUS" : "SUKSES" , "DATA" : response}); - // }) - // .catch((error) => { - // return res.status(404).json({"STATUS" : "ERROR" ,"DATA" : error}); - // }); - - // } - // // Multi Devices - // else{ - // console.log(token); - // var tokens = ["e3S17M3ZMjU:APA91bEEb2otaSUV7Vu0hRxVCiCawxHXnc1E_PV1nxvSJOSxAL90SYGIOy_zbrsBJP-ewD0OgRQ44rfFDHF_ROQj3GKH8T5DfhUHeb4xPeVWc16kyF_NRyUvx3G_RDqgX4RYMKjfg6gs", - // "dN1qcm6jr9M:APA91bFuXr5tx0tVqKYqGxWDjaNm8NrbzO2hFpK6ylQHxQzZMnTjN4GtT3MNOXRkU-Mj98A9xMmJy715IQJX_aQb_7PqmzNchegeDOTJn86zcnTMlkqU6IKJaFkU2CRsZU_bsHXDeDoX"] - // var message = { - // tokens : tokens, - // notification : data.notification, - // data : dataReq.data - // } - // fcm.messaging().sendMulticast(message) - // .then((response) => { - // console.log(response); - // if (response.failureCount > 0) { - // const failedTokens = []; - // response.responses.forEach((resp, idx) => { - // console.log('AAAA'); - // if (!resp.success) { - // failedTokens.push(registrationTokens[idx]); - // } - // }); - // console.log('List of tokens that caused failures: ' + failedTokens); - // } - // return res.status(200).json({"STATUS" : "SUKSES" ,"DATA" : response}); - // }).catch((error) => { - // console.log('ERROR'); - // return res.status(404).json({"STATUS" : "ERROR" ,"DATA" : error}); - // }); - // } - // } - - - - + } catch (e) { + console.log(e.message); + return res.status(404).json(e.message); + } }); -app.listen(port,()=> console.log(`Listening into port ${port}`)); +app.listen(port, () => console.log(`Listening into port ${port}`));