Cara membuat notifikasi dengan php

Pengantar:
Tutorial ini membahas tentang cara membuat kotak notifikasi untuk situs web Anda.

Ini adalah bagian pertama dari dua bagian, di mana kita akan membuat HTML dan mengatur pesan.

Kotak Pemberitahuan?
Ketika saya mengatakan kotak notifikasi, yang saya maksud adalah salah satu kotak informasi yang mulus dan bergeser yang terkadang muncul dalam keadaan tertentu di situs web di bagian atas halaman. Biasanya menyatakan bahwa halaman web menggunakan 'cookies'.


HTML:
Pertama kami ingin membuat HTML untuk halaman kami. Untuk kotak notifikasi HTML kita akan memiliki beberapa elemen ...
.outerBox - Seluruh lebar halaman untuk memberikan warna background yang bagus
.innerBox - Mengatur lokasi konten dalam
.innerBox #information - Pesan notifikasi.
.innerBox #close - Kotak yang dapat diklik pengguna untuk menutup kotak notifikasi.

<html>
	<head></head>
	<body>
		<div class='outerBox'>
			<div class='innerBox'>
				<p id='information'>Info.</p>
				<p id='close'>X</p>
			</div>
		</div>
	</body>
</html>
_

HTML di atas sekarang siap muncul sebagai kotak pemberitahuan, namun pesannya akan selalu menjadi 'Info'. Biasanya pesan ini akan ada hubungannya dengan kueri sisi server seperti pengguna yang mencoba masuk mengetik informasi mereka secara tidak benar, jadi kami akan mengeluarkan pesan PHP di sana.

PHP. Pertama kita mengatur area PHP kita

<?php
?>

Selanjutnya kami akan mengeksekusi kueri kami, dan dalam kondisi tertentu kami ingin mengatur pesan informasi / pemberitahuan baru. Kami akan membuat / menetapkan nilai variabel bernama 'pesan' untuk ini.
_

//Execute queries here, etc...
$message = 'That username is not available!';

Sekarang di mana kita memiliki kotak notifikasi HTML, kami ingin memeriksa terlebih dahulu apakah variabel $ message disetel dalam PHP, jika ya, itu berarti kami memiliki pesan yang ingin kami keluarkan melalui kotak notifikasi baru.
_

if (isSet($message)) {
	//Notification box code in here...
}

Akhirnya kami ingin mengubah 'Info.' dari kotak notifikasi ke pesan PHP. Ini kode terakhir kita.
_

<?php
	//Execute queries here, etc...
	$message = 'That username is not available!';
?>
<html>
	<head></head>
	<body>
		<?php
		if (isSet($message)) {
		//Notification box code in here...
		echo "
		<div class='outerBox'>
			<div class='innerBox'>
				<p id='information'>".$message."</p>
				<p id='close'>X</p>
			</div>
		</div>";
		}
		?>
	</body>
</html>
_

belajarnotifikasiphpcara membuat notifikasidenganphpphpmudahmembuatnotifikasiphpnotifikasi

Layanan Firebase Cloud Messaging (FCM) Google adalah cara gratis dan nyaman untuk mendistribusikan notifikasi push ke perangkat seluler. Ini bekerja dengan target iOS, Android, dan web, menghilangkan perbedaan lintas platform. Anda mengirim payload sekali ke Firebase API dan mendapatkan pengiriman real-time ke semua pengguna Anda

Dalam artikel ini, kami akan menunjukkan cara menggunakan Firebase untuk mengirim notifikasi push dari kode PHP sisi server Anda. Kami menggunakan pustaka php-firebase-cloud-messaging (PHP-FCM) pihak ketiga untuk lebih menyederhanakan integrasi Firebase

Mendeskripsikan Arsitektur

Berhasil mengirimkan pemberitahuan push membutuhkan beberapa komponen untuk bekerja sama. Pertama, Anda memerlukan akun Firebase aktif dengan project yang mengaktifkan FCM. Kami akan mengatur ini dalam langkah-langkah berikut. Anda akan diberikan kunci server yang harus disertakan oleh backend PHP Anda dengan permintaan Firebase-nya

Anda juga memerlukan aplikasi yang menggunakan Firebase SDK untuk menghasilkan token pendaftaran klien. Token ini harus dikirim ke backend PHP Anda. Simpan di database Anda bersama dengan informasi yang mengidentifikasi klien, seperti ID pengguna yang masuk ke aplikasi Anda

Karena artikel ini berfokus pada integrasi backend, kami anggap Anda sudah memiliki aplikasi klien Firebase yang berlangganan notifikasi dan menerima token pendaftaran. Anda dapat mengikuti dokumentasi untuk membuat aplikasi Android dasar jika Anda memerlukan contoh proyek. Dalam kode sisi klien Anda, kirimkan token Firebase ke titik akhir API yang akan Anda buat di layanan PHP Anda

Setelah Anda memiliki beberapa token klien yang tersedia di server, Anda dapat mengirimkan notifikasi push dengan membuat permintaan HTTP ke FCM API. Firebase akan memediasi dengan masing-masing platform pengiriman notifikasi, mendorong notifikasi Anda ke perangkat tertentu. FCM secara internal memetakan setiap token klien ke platform yang tepat, seperti Google Play Services untuk Android dan Apple Push Notification Service (APNS) untuk iOS

Membuat Proyek Firebase Anda

Buka Firebase Console, login, dan klik "Tambahkan proyek" untuk mulai menyiapkan integrasi Anda. Beri nama proyek Anda dan klik petunjuk konfigurasi awal. Klik roda gigi pengaturan di kiri atas saat Anda mencapai dasbor. Pilih "Pengaturan proyek" dari menu yang muncul

Buka tab "Cloud Order" dan catat Server Key Anda. Layanan PHP Anda akan menggunakan kredensial ini untuk mengirimkan notifikasi ke Firebase API

Anda harus mendaftarkan aplikasi seluler Anda di konsol Firebase. Kembali ke beranda, gunakan tombol "Tambah aplikasi" untuk menambahkan komponen iOS dan Android Anda. Ikuti panduan penyelesaian untuk menyiapkan data aplikasi Anda dan mengunduh file konfigurasi Firebase-nya. Ini harus dirujuk saat Anda menginisialisasi Firebase dalam kode sisi klien

Jika Anda membuat aplikasi iOS, Anda perlu menautkan kunci APNS ke Firebase secara manual. Klik roda gigi pengaturan di kiri atas, pilih "Pengaturan proyek", dan arahkan kembali ke "Pesanan Cloud". ” Bagian "Aplikasi Apple" akan muncul saat Anda memiliki komponen iOS di proyek Anda. Tambahkan kunci atau sertifikat APNS dari Akun Pengembang Apple Anda untuk menyelesaikan integrasi. Ini memungkinkan FCM mengirim notifikasi ke APNS atas nama Anda

Mempersiapkan Aplikasi PHP Anda

Mulai proyek PHP Anda dengan menambahkan pustaka PHP-FCM menggunakan Komposer

composer require sngrl/php-firebase-cloud-messaging

Dalam kode Anda, buat instance dari Kelas klien PHP-FCM

use sngrlPhpFirebaseCloudMessagingClientClient;
 
$client = new Client();
$client -> setApiKey("FCM-SERVER-KEY");
$client -> injectGuzzleHttpClient(new GuzzleHttpClient());

 

Lewati metode setApiKey() Server Key yang Anda salin dari Firebase API yang Anda gunakan. Dalam aplikasi nyata, ini harus disimpan dengan aman dan diperlakukan sebagai rahasia

PHP-FCM mengandalkan instance Guzzle yang disuntikkan untuk membuat permintaan HTTP-nya. Guzzle otomatis disertakan sebagai dependensi sehingga Anda tidak perlu menginstalnya secara manual. Kami sedang mengembangkan klien Guzzle baru dalam contoh di atas;

FCM Client Instance kini siap mengirimkan notifikasi ke akun FCM Anda

Mendaftarkan Token Klien

Notifikasi didistribusikan ke token klien yang mewakili perangkat pengguna Anda. Seperti yang dijelaskan di atas, Anda harus mengekspos titik akhir API di aplikasi Anda yang memungkinkan aplikasi klien Anda mengirimkan token FCM mereka setelah pengguna masuk

Berikut adalah contoh dasar tampilannya

$token = $_POST["fcmToken"];
$userId = ((int) $_POST["userId"]);
 
/**
 * Call a function which persists a user/token 
 * association to your database
 */
saveUserFcmToken($userId, $token);

 

Untuk mengirim pemberitahuan push ke setiap perangkat terdaftar, pilih semua token di penyimpanan data Anda. Anda dapat mengirim ke pengguna tertentu dengan mengambil token yang terkait dengan ID mereka. Ini akan menampilkan notifikasi di semua perangkat yang mereka masuki, yang biasanya merupakan perilaku yang diinginkan

Mengirim Notifikasi

PHP-FCM mengabstraksi setiap pengiriman notifikasi menjadi objek Pesan. Ini membungkus Notifikasi – berisi teks yang ditampilkan kepada pengguna – dan opsi pengiriman apa pun yang Anda berikan

Persiapkan Pemberitahuan Anda sebelumnya

use sngrlPhpFirebaseCloudMessagingClientNotification;
 
$notification = new Notification(
    "Notification Title",
    "The longer text of the notification, displayed below the title."
);

 

Selanjutnya buat Pesan untuk mewakili pengiriman notifikasi

use sngrlPhpFirebaseCloudMessagingClientMessage;
 
$message = new Message();
$message -> setNotification($notification);

 

Sebelum mengirim pesan Anda, tambahkan satu atau beberapa penerima. Metode addRecipient() mengambil instance Device;

use sngrlPhpFirebaseCloudMessagingClientRecipientDevice;
 
$message -> addReceipient(new Device("FCM-CLIENT-TOKEN-USER-1"));
$message -> addReceipient(new Device("FCM-CLIENT-TOKEN-USER-2"));

 

Sekarang Anda siap mengirim pesan menggunakan Klien yang dibuat sebelumnya

$client->send($message);

Notifikasi akan dikirim ke perangkat yang Anda tambahkan sebagai penerima

Berikut adalah contoh lengkap yang menggabungkan kode penanganan notifikasi menjadi fungsi praktis

use sngrlPhpFirebaseCloudMessagingClientClient;
use sngrlPhpFirebaseCloudMessagingClientMessage;
use sngrlPhpFirebaseCloudMessagingClientNotification;
use sngrlPhpFirebaseCloudMessagingClientRecipientDevice;
 
$client = new Client();
$client -> setApiKey("FCM-SERVER-KEY");
$client -> injectGuzzleHttpClient(new GuzzleHttpClient());
 
function sendNotification(
    Client $client,
    string $title,
    string $body,
    string ...$clientTokens) : void {
 
    $message = new Message();
 
    $message -> setNotification(
        new Notification(
            $title,
            $body
        )
    );
 
    foreach ($clientTokens as $clientToken) {
        $message -> addRecipient(new Device($clientToken));
    }
 
    $client -> send($message);
 
}
 
sendNotification($client, "Hello World", "Test Notification", "FCM-CLIENT-TOKEN-1");

 

Menangani Data Respons FCM

Metode klien. send() mengembalikan objek respons HTTP untuk permintaan notifikasi. Anda dapat memeriksa data respons yang dikodekan JSON untuk menentukan apakah notifikasi Anda berhasil dikirim

$message = new Message();
$message -> setNotification(new Notification("Test", "Test"));
$message -> addReceipient(new Device("FCM-CLIENT-TOKEN-USER-1"));
$message -> addReceipient(new Device("FCM-CLIENT-TOKEN-USER-2"));
 
$response = $client -> send($message);
$responseData = $response -> json();

 

Array data respons memiliki struktur yang mirip dengan yang berikut ini

{
    "success": 1,
    "failure": 1,
    "results": [
        {
            "message_id": 100
        },
        {
            "error": "InvalidRegistration"
        }
    ]
}

 

Array hasil berisi objek yang mewakili status pengiriman setiap perangkat yang ingin Anda kirimi. Ini akan cocok dengan urutan penerima yang ditambahkan ke Pesan melalui metode addRecipient(). Contoh JSON di atas menunjukkan bahwa hanya perangkat pertama yang menerima notifikasi. Pengiriman kedua gagal sehingga Anda harus menghapus token perangkat dari database Anda

use sngrlPhpFirebaseCloudMessagingClientClient;
 
$client = new Client();
$client -> setApiKey("FCM-SERVER-KEY");
$client -> injectGuzzleHttpClient(new GuzzleHttpClient());
_0

 

Menambahkan Data Sewenang-wenang ke Notifikasi

Pesan tersebut dapat menyertakan data arbitrer yang perlu dikomunikasikan ke aplikasi klien

use sngrlPhpFirebaseCloudMessagingClientClient;
 
$client = new Client();
$client -> setApiKey("FCM-SERVER-KEY");
$client -> injectGuzzleHttpClient(new GuzzleHttpClient());
_1

 

Kode sisi klien dapat mengakses data ini untuk mengambil tindakan yang berbeda saat pemberitahuan diterima

Menetapkan Prioritas Pesan

FCM mendukung sistem prioritas pesan yang memungkinkan Anda meminta pengiriman segera ke perangkat target. Saat mode prioritas tinggi digunakan, FCM mencoba membangunkan perangkat Android yang sedang tidur untuk menangani notifikasi, meskipun aktivitas latar belakang sedang ditekan

use sngrlPhpFirebaseCloudMessagingClientClient;
 
$client = new Client();
$client -> setApiKey("FCM-SERVER-KEY");
$client -> injectGuzzleHttpClient(new GuzzleHttpClient());
_2

Atribut ini harus digunakan dengan hati-hati. Mengirim terlalu banyak pesan prioritas yang tidak menghasilkan interaksi pengguna akan menyebabkan pengiriman Anda diprioritaskan. Mekanisme ini ditujukan untuk muatan yang sangat penting yang perlu melewati penghematan baterai perangkat, pelambatan jaringan, dan pelambatan aktivitas latar belakang.

iOS menangani prioritas secara berbeda. Anda akan mendapatkan kesalahan jika mencoba mengirim pesan berprioritas tinggi ke perangkat iOS. Anda dapat menggunakan nilai normal atau 5, yang terakhir menunjukkan bahwa pengiriman dengan prioritas tinggi lebih disukai

Waktu untuk Hidup

Time to Live (TTL) dari instance pesan menentukan berapa lama itu tetap relevan. FCM tidak selalu dapat mengirimkan notifikasi tepat waktu. Perangkat target bisa offline atau dalam kondisi baterai lemah. FCM akan terus mencoba mengirimkan notifikasi, tetapi perilaku ini tidak selalu diinginkan. Beberapa notifikasi seperti pengingat kedaluwarsa mungkin tidak relevan bagi pengguna pada saat mereka menerimanya

Gunakan metode setTimeToLive() untuk menentukan masa aktif pesan Anda. FCM akan berhenti mencoba mengirimkannya setelah TTL kedaluwarsa

use sngrlPhpFirebaseCloudMessagingClientClient;
 
$client = new Client();
$client -> setApiKey("FCM-SERVER-KEY");
$client -> injectGuzzleHttpClient(new GuzzleHttpClient());
_3

 

Lencana (lencana) di iOS

iOS menggunakan lencana merah di ikon layar beranda untuk menunjukkan jumlah notifikasi yang belum dibaca yang tersedia di aplikasi. Anda dapat mengubah badge numerik aplikasi Anda dengan metode setBadge() pada objek Notification

use sngrlPhpFirebaseCloudMessagingClientClient;
 
$client = new Client();
$client -> setApiKey("FCM-SERVER-KEY");
$client -> injectGuzzleHttpClient(new GuzzleHttpClient());
_4

 

Kelas Notifikasi juga memiliki metode untuk perilaku khusus platform lainnya. Anda dapat mengubah ikon notifikasi di perangkat Android (setIcon()), menyetel suara yang akan diputar (setSound()), dan menggunakan tag (setTag()) untuk mengontrol apakah notifikasi sebelumnya diganti dengan yang baru dikirim. Properti ini dan keunikan penerapan platformnya dijelaskan dalam dokumentasi FCM API

Kesimpulan

FCM adalah cara ideal untuk mulai mengirimkan pemberitahuan push ke perangkat seluler dari backend PHP. Ini menangani interaksi dengan implementasi push khusus platform seperti APNS dan Layanan Google Play, mengurangi jumlah kode yang perlu Anda tulis

Library PHP Firebase Cloud Messaging membungkus FCM API dalam kelas dan metode PHP yang praktis. Untuk kontrol lebih lanjut, Anda dapat memanggil FCM API secara langsung melalui library HTTP PHP seperti Guzzle. Anda mungkin harus mengambil pendekatan ini jika Anda perlu menggunakan opsi notifikasi yang tidak diekspos oleh PHP-FCM

Demikian berita Cara Mengirim Push Notifikasi Mobile Dengan PHP dan Firebase, semoga bermanfaat. Diadaptasi dari HowToGeek. com