DISKON TERBATAS! Masukkan kupon "skillbaru" saat checkout di kelas apa saja
Skodev
Belajar coding dalam bahasa Indonesia
Daftar Isi:
Membuat push notification pada aplikasi web bisa sangat berguna untuk meningkatkan interaksi pengguna. Fitur ini memungkinkan pengguna untuk menerima pemberitahuan realtime meskipun mereka tidak sedang berada di halaman website kamu. Dalam artikel ini, kita akan membahas cara membuat push notification menggunakan PHP.
Sebelum memulai, pastikan kamu memiliki hal-hal berikut ini:
Salah satu cara termudah untuk mengimplementasikan push notification di PHP adalah dengan memanfaatkan libraries yang telah tersedia. Salah satu library yang populer adalah web-push-php
.
Untuk menginstal web-push-php
, kamu bisa menggunakan Composer dengan perintah berikut:
composer require minishlink/web-push
Voluntary Application Server Identification (VAPID) keys digunakan untuk mengidentifikasi server aplikasi kamu ke server push. Kamu bisa mendapatkan VAPID keys menggunakan library yang sudah kamu instal.
use Minishlink\WebPush\VAPID;
$keys = VAPID::createVapidKeys();
Simpan keys yang dihasilkan dengan aman.
Di sisi klien, kamu harus meminta izin dari pengguna untuk menerima push notification dan mendaftarkan service worker.
Tambahkan skrip berikut pada website kamu untuk meminta izin:
Notification.requestPermission().then(function(permission) {
if(permission === "granted") {
console.log("Permission for push notifications granted");
}
});
Service worker adalah skrip yang dijalankan oleh browser di latar belakang. Untuk mendaftarkannya, tambahkan kode berikut:
if('serviceWorker' in navigator) {
navigator.serviceWorker.register('service-worker.js')
.then(function(registration) {
console.log("Service Worker registered with scope:", registration.scope);
}).catch(function(error) {
console.log("Service Worker registration failed:", error);
});
}
Pada server, kamu perlu menangani subscription dari pengguna dan mengirim push notification.
Kamu harus menyimpan informasi subscription yang dikirim oleh klien. Informasi ini akan digunakan saat mengirim push notification.
// Contoh menyimpan subscription ke database
$userSubscription = json_decode(file_get_contents('php://input'), true);
// Proses penyimpanan ke database...
Gunakan library web-push-php
untuk mengirim push notification ke pengguna yang telah subscribe.
use Minishlink\WebPush\WebPush;
// Buat objek WebPush dengan VAPID keys yang sudah kamu buat
$webPush = new WebPush(['VAPID' => [
'subject' => 'mailto:your-email@example.com',
'publicKey' => $publicKey, // ganti dengan VAPID Public Key kamu
'privateKey' => $privateKey, // ganti dengan VAPID Private Key kamu
]]);
// Buat pesan yang ingin dikirim
$notification = [
'subscription' => $userSubscription, // subscription dari pengguna yang ingin dikirim notifikasi
'payload' => 'Hello, world!' // isi dari push notification
];
// Kirim notifikasi
$webPush->sendNotification(
$notification['subscription'],
$notification['payload']
);
Setelah mengirim push notification, kamu perlu menangani respons dari server push, seperti mengupdate status subscription atau menghapus subscription yang sudah tidak valid.
// Lakukan looping pada setiap hasil
foreach ($webPush->flush() as $report) {
$endpoint = $report->getRequest()->getUri()->__toString();
if ($report->isSuccess()) {
echo "[v] Push notification sent successfully for subscription {$endpoint}.";
} else {
echo "[x] Push notification failed for subscription {$endpoint}: {$report->getReason()}";
// Periksa apakah perlu menghapus subscription yang tidak valid
// ...
}
}
Dengan mengikuti langkah-langkah di atas, kamu sekarang sudah bisa membuat push notification untuk aplikasi web kamu menggunakan PHP. Ingat untuk selalu memperhatikan aspek keamanan dan privasi pengguna saat mengimplementasikan fitur ini.
Link terkait: