Send Firebase Cloud Messaging Using HTTP Request

Send Firebase Cloud Messaging Using HTTP Request

Pendahuluan

Saat sedang asik-asiknya mengerjakan fitur notifikasi di Flutter, tiba-tiba saya kepikiran, fitur ini kan di-trigger melalu console Firebase? Lalu bagaimana menjalankannya berdasarkan kondisi yang terjadi di-Backend?

Firebase menyediakan Restful API dengan HTTP Protocol untuk memenuhi kebuuhan tersebut, sehingga kita dengan mudah melakukannya dengan berbagai macam bahasa pemrograman, khususnya PHP.

Baca Juga: Aplikasi Booking Online Laravel 9 & Livewire 4: Dashboard Admin Page

Using Curl to Hit API

Materi ini tidak akan membahas bagaimana membuat fitur notifikasi secara lengkap, karena fitur tersebut melibatkan berbagai hal yang sedikit lebih kompleks. Tujuan kita adalah bagaimana mengirimankan data ke Firebase Cloud Messaging menggunakan API yang telah disediakan.

Berikut adalah code yang akan kita gunakan, tempatkan dimanapun sesuai kebutuhan teman-teman

$fcmToken = ['DEVICE TOKEN ANDA', 'DEVICE TOKEN ANDA'];
$url = 'https://fcm.googleapis.com/fcm/send';
$serverKey = 'SERVER KEY ANDA';
$title = 'JUDUL NOTIFIKASI ANDA';
$body = 'ISI NOTIFIKASI ANDA';

$data = [
    "registration_ids" => $fcmToken,
    "notification" => [
        "title" => $title,
        "body" => $body,  
    ],
    "data" => [
        //JIKA INGIN MENGIRIMKAN PARAMETER TAMBAHAN, BISA ANDA TAMBAHKAN DISINI
        "date" => now()
    ]
];
$encodedData = json_encode($data);

$headers = [
    'Authorization:key=' . $serverKey,
    'Content-Type: application/json',
];

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
// Disabling SSL Certificate support temporarly
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);        
curl_setopt($ch, CURLOPT_POSTFIELDS, $encodedData);
$result = curl_exec($ch);
if ($result === FALSE) {
    die('Curl failed: ' . curl_error($ch));
}        
curl_close($ch);
$result = json_decode($result, true);

Note: SERVER_KEY bisa Anda peroleh pada halaman Firebase Console, kemudian ke menu Setting > Cloud Messaging > Add Server key.

 

Category:
Share:

Comments