|
|
@@ -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}`)); |