DISKON TERBATAS! Masukkan kupon "skillbaru" saat checkout di kelas apa saja

Logo Koala Skodev mengetik

Skodev

Belajar coding dalam bahasa Indonesia

CARA MEMBUAT PUSH NOTIFICATION PHP

Panduan langkah demi langkah cara membuat push notification menggunakan PHP untuk meningkatkan interaksi pengguna pada aplikasi web Anda.

Daftar Isi:

Persiapan
Menggunakan Libraries Eksterna...
Client-Side Setup
Server-Side Logic

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.

Persiapan

Sebelum memulai, pastikan kamu memiliki hal-hal berikut ini:

  • Server dengan PHP yang sudah terinstal dan berjalan
  • Akses ke server untuk men-deploy skrip PHP
  • SSL (Secure Socket Layer) harus diaktifkan jika ingin push notification bisa bekerja di semua browser

Menggunakan Libraries Eksternal

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.

Instalasi via Composer

Untuk menginstal web-push-php, kamu bisa menggunakan Composer dengan perintah berikut:

composer require minishlink/web-push

Konfigurasi VAPID Keys

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.

Client-Side Setup

Di sisi klien, kamu harus meminta izin dari pengguna untuk menerima push notification dan mendaftarkan service worker.

Meminta Izin Pengguna

Tambahkan skrip berikut pada website kamu untuk meminta izin:

Notification.requestPermission().then(function(permission) {
  if(permission === "granted") {
    console.log("Permission for push notifications granted");
  }
});

Mendaftarkan Service Worker

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

Server-Side Logic

Pada server, kamu perlu menangani subscription dari pengguna dan mengirim push notification.

Menyimpan Subscription

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...

Mengirim Push Notification

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']
);

Menangani Hasil

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.


Daftar newsletter skodev masukkan emailmu untuk dapat informasi menarik dari dunia koding