test fcm v3
This commit is contained in:
57
xsend.ts
Normal file
57
xsend.ts
Normal file
@@ -0,0 +1,57 @@
|
||||
// Impor Firebase Admin SDK
|
||||
import { initializeApp, cert, getApp, getApps } from "firebase-admin/app";
|
||||
import { getMessaging } from "firebase-admin/messaging";
|
||||
import path from "path";
|
||||
import fs from 'fs/promises'
|
||||
|
||||
|
||||
// Fungsi untuk mengirim notifikasi FCM
|
||||
export async function sendFCMNotification(token: string) {
|
||||
const serviceAccount = await fs.readFile(path.join(process.cwd(), "key.json"));
|
||||
if(getApps().length === 0){
|
||||
initializeApp({
|
||||
credential: cert(JSON.parse(serviceAccount.toString())),
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
// Konfigurasi pesan
|
||||
const message = {
|
||||
notification: {
|
||||
title: "Judul Notifikasi",
|
||||
body: "Ini adalah isi notifikasi",
|
||||
},
|
||||
token,
|
||||
data: {
|
||||
key1: "value1",
|
||||
key2: "value2",
|
||||
},
|
||||
// Opsional: konfigurasi Android
|
||||
android: {
|
||||
priority: "high",
|
||||
notification: {
|
||||
sound: "default",
|
||||
channelId: "default_channel",
|
||||
},
|
||||
},
|
||||
// Opsional: konfigurasi APNS (iOS)
|
||||
apns: {
|
||||
payload: {
|
||||
aps: {
|
||||
sound: "default",
|
||||
},
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
// Kirim pesan
|
||||
const response = await getMessaging().send(message as any);
|
||||
console.log("Notifikasi berhasil dikirim:", response);
|
||||
return response;
|
||||
} catch (error) {
|
||||
console.error("Error mengirim notifikasi:", error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
sendFCMNotification('c89yuexsS_uc1tOErVPu5a:APA91bEb6tEKXAfReZjFVJ2mMyOzoW_RXryLSnSJTpbIVV3G0L_DCNkLuRvJ02Ip-Erz88QCQBAt-C2SN8eCRxu3-v1sBzXzKPtDv-huXpkjXsyrkifqvUo')
|
||||
Reference in New Issue
Block a user