@@ -0,0 +1,13 @@ | |||
{ | |||
"type": "service_account", | |||
"project_id": "hris-a1c6c", | |||
"private_key_id": "dc2149cc4504c661bdcbd8d9e64a0f30a8ae141b", | |||
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC1PBVqOyy6Hcva\njCYFJdTVGU6ERnsZaycnC28f/toiN4GJwCU+ZO7orXQwgwDHUHCz3j75IU2G5xy4\n/M3+3mM3Q7czj+3YB5n1YnenrUn1zNtovekXXV1kNViGd8uyfqPPUtwLLzzlg36C\n20bBLml2Oa0QR/s14M4bwEKclewsPcguJG+jVMtk43MnMSfkV0M+pjY44IHv40KW\no8H991864mlSxVrXZzOt7jTMw4nQNXUA2X2wq4lwvSnyg3bpsxwr7UBvLIyFZEqt\n74F+/BsEcCuOqKBCS4i0KVm7zJRomY/R4kwAbFA2PtKPMxMQv7yRIWxJOgyEtsuI\nSG0+e7vvAgMBAAECggEAV7X/8T05TMvd3GPmhKhGBGouf0LzEZ6zwKg+fEAlhtjR\nJv8opzVHELHdoRrNtiiemtZtKLou4KKaWobzFS3A2764e8plBB/NqZ4hpbNur3iZ\nGWyL0iR77eMJeG6i1TyH/+8skncmpDdK8363FAhnvvFz6gTENdOaPIEEW+8M8W2V\ngbwKhXiiUa4Yj65ucGxPBUKrgvsNO6/OCxaglrsMf3AS9o0GPRko9g7bs19TLnoG\nT6gdvQxg+zi26JM0TsNnkXX32IsN+r1JOx+8weCH+FgPCvFja3lcgPFB+Z3Wc4X3\nDNBTIKoUkHlmptARGzXPTWIM5W7JGRN59oicKXcTCQKBgQDvIVeMx6xMWKcdx95N\na2yhPOcl58Q6N+OQXj4E1J+fSiYSasxLDdmuL2madO4c2ajAR7EuPaz6waNW2/XS\nXXM2Lsyeg46UIoDE+RNNQQQ7aCSOu51WfmADsBlRxQWc4qaNH3l/sPsiBh816W2v\ncUnEbLYmbvxThvg1+GiWUDtq9wKBgQDCBSgOlobSFyQAMK0HTR6yaT0LtgI6e+dr\nhmmsFoDb3fUUyRFzXpTOJ2cA5xUEw8mwpVS9SiDvxr1wn+F3vIvYocbXY2hKzbOb\nhyDyqYYBZdaf7YKihZ+wujJJQu1OByy8TRyy4L04ziad4n9V2eGYaFX2ZjL/7TCR\n+GBYLuFAyQKBgQCeYucqR9bHerC1+Pw1K0H4Se6QHMLMDNidds59RJe1Wdd9u181\nFydnR+Aaffh5A3HSaanhhthb/oXBsk9P1rXI3ZaKJ3j4hSHlVVSDhtzWvFP6dinw\ncCQITUt37ZeaIkVOk9pVyVONZaCmhMYxvket4pODQV+/s1YT6UTcyqeQYQKBgQCv\nhSqvx80/0l9nLKHbsRDMJhhrt8RcVCsPQxHl9JWuUiWdICkBTdcgiNTOJD8HiHe1\nrlvywlT5lblbYcf/IjsBR5ky0WNQCLcrRBuya1oneZGoLJ25mVjV8Bv92uYDaMo3\nryr/SADmmtikjHrVl75WukzKE7qffFwsMZ43KHHuwQKBgQCEQO0++OURsJjiTsdt\nEclY4+4sJmjf1wV0w80Qxh6CUEZvO1vo71y4oWqVAY5vDyasSKCyC8O4hmDeeTni\n+O0eQl8S8fOCZTOLGIx6I+BnlsJuXtj4j2x3z4zQm70wU/LcONXAVxdRiXPWECAK\nPh6dTxJTT8TeXcCM+hswW4ZVNg==\n-----END PRIVATE KEY-----\n", | |||
"client_email": "firebase-adminsdk-9i92r@hris-a1c6c.iam.gserviceaccount.com", | |||
"client_id": "103796818750526974337", | |||
"auth_uri": "https://accounts.google.com/o/oauth2/auth", | |||
"token_uri": "https://oauth2.googleapis.com/token", | |||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", | |||
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-9i92r%40hris-a1c6c.iam.gserviceaccount.com" | |||
} | |||
@@ -0,0 +1,12 @@ | |||
{ | |||
"type": "service_account", | |||
"project_id": "hris-a1c6c", | |||
"private_key_id": "dc2149cc4504c661bdcbd8d9e64a0f30a8ae141b", | |||
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQC1PBVqOyy6Hcva\njCYFJdTVGU6ERnsZaycnC28f/toiN4GJwCU+ZO7orXQwgwDHUHCz3j75IU2G5xy4\n/M3+3mM3Q7czj+3YB5n1YnenrUn1zNtovekXXV1kNViGd8uyfqPPUtwLLzzlg36C\n20bBLml2Oa0QR/s14M4bwEKclewsPcguJG+jVMtk43MnMSfkV0M+pjY44IHv40KW\no8H991864mlSxVrXZzOt7jTMw4nQNXUA2X2wq4lwvSnyg3bpsxwr7UBvLIyFZEqt\n74F+/BsEcCuOqKBCS4i0KVm7zJRomY/R4kwAbFA2PtKPMxMQv7yRIWxJOgyEtsuI\nSG0+e7vvAgMBAAECggEAV7X/8T05TMvd3GPmhKhGBGouf0LzEZ6zwKg+fEAlhtjR\nJv8opzVHELHdoRrNtiiemtZtKLou4KKaWobzFS3A2764e8plBB/NqZ4hpbNur3iZ\nGWyL0iR77eMJeG6i1TyH/+8skncmpDdK8363FAhnvvFz6gTENdOaPIEEW+8M8W2V\ngbwKhXiiUa4Yj65ucGxPBUKrgvsNO6/OCxaglrsMf3AS9o0GPRko9g7bs19TLnoG\nT6gdvQxg+zi26JM0TsNnkXX32IsN+r1JOx+8weCH+FgPCvFja3lcgPFB+Z3Wc4X3\nDNBTIKoUkHlmptARGzXPTWIM5W7JGRN59oicKXcTCQKBgQDvIVeMx6xMWKcdx95N\na2yhPOcl58Q6N+OQXj4E1J+fSiYSasxLDdmuL2madO4c2ajAR7EuPaz6waNW2/XS\nXXM2Lsyeg46UIoDE+RNNQQQ7aCSOu51WfmADsBlRxQWc4qaNH3l/sPsiBh816W2v\ncUnEbLYmbvxThvg1+GiWUDtq9wKBgQDCBSgOlobSFyQAMK0HTR6yaT0LtgI6e+dr\nhmmsFoDb3fUUyRFzXpTOJ2cA5xUEw8mwpVS9SiDvxr1wn+F3vIvYocbXY2hKzbOb\nhyDyqYYBZdaf7YKihZ+wujJJQu1OByy8TRyy4L04ziad4n9V2eGYaFX2ZjL/7TCR\n+GBYLuFAyQKBgQCeYucqR9bHerC1+Pw1K0H4Se6QHMLMDNidds59RJe1Wdd9u181\nFydnR+Aaffh5A3HSaanhhthb/oXBsk9P1rXI3ZaKJ3j4hSHlVVSDhtzWvFP6dinw\ncCQITUt37ZeaIkVOk9pVyVONZaCmhMYxvket4pODQV+/s1YT6UTcyqeQYQKBgQCv\nhSqvx80/0l9nLKHbsRDMJhhrt8RcVCsPQxHl9JWuUiWdICkBTdcgiNTOJD8HiHe1\nrlvywlT5lblbYcf/IjsBR5ky0WNQCLcrRBuya1oneZGoLJ25mVjV8Bv92uYDaMo3\nryr/SADmmtikjHrVl75WukzKE7qffFwsMZ43KHHuwQKBgQCEQO0++OURsJjiTsdt\nEclY4+4sJmjf1wV0w80Qxh6CUEZvO1vo71y4oWqVAY5vDyasSKCyC8O4hmDeeTni\n+O0eQl8S8fOCZTOLGIx6I+BnlsJuXtj4j2x3z4zQm70wU/LcONXAVxdRiXPWECAK\nPh6dTxJTT8TeXcCM+hswW4ZVNg==\n-----END PRIVATE KEY-----\n", | |||
"client_email": "firebase-adminsdk-9i92r@hris-a1c6c.iam.gserviceaccount.com", | |||
"client_id": "103796818750526974337", | |||
"auth_uri": "https://accounts.google.com/o/oauth2/auth", | |||
"token_uri": "https://oauth2.googleapis.com/token", | |||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs", | |||
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-9i92r%40hris-a1c6c.iam.gserviceaccount.com" | |||
} |
@@ -0,0 +1,127 @@ | |||
const express = require('express'); | |||
const path = require('path'); | |||
const {google} = require('googleapis'); | |||
var admin = require("firebase-admin"); | |||
var SCOPES = 'https://www.googleapis.com/auth/firebase.messaging'; | |||
const port = 3333; | |||
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); | |||
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}); | |||
}); | |||
// 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}); | |||
// }); | |||
// } | |||
// } | |||
}); | |||
app.listen(port,()=> console.log(`Listening into port ${port}`)); |
@@ -0,0 +1,10 @@ | |||
{ | |||
"HRIS" : { | |||
"PATH" : "hris-firebase-service.json", | |||
"DB_URL" : "https://hris-a1c6c.firebaseio.com" | |||
}, | |||
"TBS" : { | |||
"PATH" : "TBS.json", | |||
"DB_URL" : "AYEYAYEE" | |||
} | |||
} |
@@ -0,0 +1,16 @@ | |||
{ | |||
"name": "fcm-node-helper", | |||
"version": "1.0.0", | |||
"description": "", | |||
"main": "index.js", | |||
"scripts": { | |||
"test": "echo \"Error: no test specified\" && exit 1" | |||
}, | |||
"author": "", | |||
"license": "ISC", | |||
"dependencies": { | |||
"express": "^4.17.1", | |||
"firebase-admin": "^9.0.0", | |||
"googleapis": "^59.0.0" | |||
} | |||
} |