Mengirim notifikasi ke pengguna menggunakan templat notifikasi dan saluran multi notifikasi, mendukung Layanan Notifikasi Asli Filamen dengan makro, dan integrasi penuh ke notifikasi pekerja layanan FCM
sebelum menggunakan paket ini pastikan Anda sudah menginstalnya
composer require tomatophp/filament-alerts
sekarang Anda perlu mempublikasikan dan memigrasikan tabel pengaturan
php artisan vendor:publish --provider= " SpatieLaravelSettingsLaravelSettingsServiceProvider " --tag= " migrations "
setelah menginstal paket Anda, silakan jalankan perintah ini
php artisan filament-alerts:install
jika Anda tidak menggunakan paket ini sebagai plugin, silakan daftarkan plugin di /app/Providers/Filament/AdminPanelProvider.php
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
)
untuk mengatur model apa pun agar menerima pemberitahuan kepada Anda
namespace App Models ;
use Illuminate Contracts Auth MustVerifyEmail ;
use Illuminate Database Eloquent Factories HasFactory ;
use Illuminate Foundation Auth User as Authenticatable ;
use Illuminate Notifications Notifiable ;
use Laravel Fortify TwoFactorAuthenticatable ;
use Laravel Jetstream HasProfilePhoto ;
use Laravel Sanctum HasApiTokens ;
use Spatie Permission Traits HasRoles ;
use TomatoPHP FilamentAlerts Traits InteractsWithNotifications ;
class User extends Authenticatable
{
use HasApiTokens ;
use HasFactory ;
use HasProfilePhoto ;
use Notifiable ;
use TwoFactorAuthenticatable ;
use HasRoles ;
use InteractsWithNotifications ;
...
dan Anda harus mengatur pengaturan FCM untuk mendapatkan notifikasi real-time
notifikasi dijalankan pada antrian, jadi Anda harus menjalankan pekerja antrian untuk mengirim notifikasi
php artisan queue:work
Anda dapat menggunakan notifikasi asli filamen dan kami menambahkan beberapa macro
untuk Anda
use Filament Notifications Notification ;
Notification :: make ( ' send ' )
-> title ( ' Test Notifications ' )
-> body ( ' This is a test notification ' )
-> icon ( ' heroicon-o-bell ' )
-> color ( ' success ' )
-> actions ([
Filament Notifications Actions Action :: make ( ' view ' )
-> label ( ' View ' )
-> url ( ' https://google.com ' )
-> markAsRead ()
])
-> sendToDiscord ( auth ()-> user ())
-> sendToEmail ( auth ()-> user ())
-> broadcast ( auth ()-> user ())
-> sendToDatabase ( auth ()-> user ())
-> sendToSlack ( auth ()-> user ())
-> sendToFCM ( auth ()-> user ())
untuk membuat template baru anda dapat menggunakan template CRUD dan pastikan bahwa kunci template unik karena Anda akan menggunakannya pada setiap notifikasi.
untuk mengirim pemberitahuan Anda harus menggunakan pembantu kami SendNotification::class like
SendNotification :: make ( $ template -> providers )
-> template ( $ template -> key )
-> findTitle ( $ matchesTitle )
-> replaceTitle ( $ titleFill )
-> findBody ( $ matchesBody )
-> replaceBody ( $ titleBody )
-> model ( User ::class)
-> id ( User :: first ()-> id )
-> privacy ( ' private ' )
-> fire ();
di mana $template
dipilih dari templat berdasarkan kunci dan $matchesTitle dan $matchesBody adalah larik kecocokan untuk menggantikan templat dan $titleFill dan $titleBody adalah larik nilai untuk menggantikan kecocokan
Anda dapat menggunakan beberapa saluran notifikasi seperti
itu dapat bekerja dengan metode pengguna langsung seperti
$ user -> notifySMSMisr (string $ message );
$ user -> notifyEmail (string $ message , ?string $ subject = null , ?string $ url = null );
$ user -> notifyFCMSDK (string $ message , string $ type = ' web ' , ?string $ title = null , ?string $ url = null , ?string $ image = null , ?string $ icon = null , ?array $ data =[]);
$ user -> notifyDB (string $ message , ?string $ title = null , ?string $ url = null );
$ user -> notifySlack (string $ title ,string $ message = null ,?string $ url = null , ?string $ image = null , ?string $ webhook = null );
$ user -> notifyDiscord (string $ title ,string $ message = null ,?string $ url = null , ?string $ image = null , ?string $ webhook = null );
agar Notifikasi FCM Berfungsi, Anda perlu menginstal Filament Settings Hub dan mengizinkan penggunaan Setting Hub pada Plugin
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
-> useSettingsHub ()
-> useFCM ()
)
daripada Anda perlu menginstal paket filament-fcm
dengan menggunakan perintah ini
composer require tomatophp/filament-fcm
dan tambahkan plugin penyedia layanan
-> plugin ( TomatoPHP FilamentFcm FilamentFcmPlugin :: make ())
sekarang Anda perlu memperbarui konfigurasi
# Firebase Project
FIREBASE_API_KEY =
FIREBASE_AUTH_DOMAIN =
FIREBASE_DATABASE_URL =
FIREBASE_PROJECT_ID =
FIREBASE_STORAGE_BUCKET =
FIREBASE_MESSAGING_SENDER_ID =
FIREBASE_APP_ID =
FIREBASE_MEASUREMENT_ID =
# Firebase Cloud Messaging
FIREBASE_VAPID =
# Firebase Alert Sound
FCM_ALERT_SOUND =
daripada menjalankan perintah ini
php artisan filament-fcm:install
itu akan menghasilkan pekerja FCM bagi Anda untuk membuat notifikasi berfungsi di latar belakang.
untuk menyembunyikan sumber notifikasi dari sidebar Anda dapat menggunakan metode plugin seperti hideNotificationsResources
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
-> hideNotificationsResources ()
)
untuk menggunakan driver slack Anda harus mengatur webhook slack di hub pengaturan dan menggunakan metode plugin useSlack
like
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
-> useSlack ()
)
sekarang di file .env
Anda, tambahkan kunci SLACK_WEBHOOK
dengan URL webhook
untuk menggunakan driver perselisihan Anda harus mengatur webhook perselisihan di hub pengaturan dan menggunakan metode plugin useDiscord
seperti
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
-> useDiscord ()
)
sekarang di file .env
Anda, tambahkan kunci DISCORD_WEBHOOK
dengan URL webhook
kami mendukung beberapa API untuk mendapatkan notifikasi dan melakukan beberapa tindakan, Anda dapat menemukannya di bawah rute api/notifications
Anda dapat mengubah model pengguna dengan menggunakan metode plugin seperti apiModel
-> plugin ( TomatoPHP FilamentAlerts FilamentAlertsPlugin :: make ()
-> apiModel ( User ::class)
)
Anda dapat mempublikasikan file konfigurasi dengan menggunakan perintah ini
php artisan vendor:publish --tag= " filament-alerts-config "
Anda dapat mempublikasikan file tampilan dengan menggunakan perintah ini
php artisan vendor:publish --tag= " filament-alerts-views "
Anda dapat mempublikasikan file bahasa dengan menggunakan perintah ini
php artisan vendor:publish --tag= " filament-alerts-lang "
Anda dapat mempublikasikan file migrasi dengan menggunakan perintah ini
php artisan vendor:publish --tag= " filament-alerts-migrations "
Lihat TomatoPHP kami yang Luar Biasa