Отправляйте уведомления пользователям, используя шаблоны уведомлений и несколько каналов уведомлений, поддержка службы уведомлений Filament Native с макросами и полную интеграцию с уведомлениями рабочих службы FCM.
Отправить уведомление пользователям
Использовать встроенное уведомление Filament
Используйте шаблоны уведомлений
Полная интеграция сервисных работников FCM
Используйте несколько каналов уведомлений
API для получения уведомлений
Скрыть ресурсы уведомлений
Используйте Slack-драйвер
Используйте драйвер Discord
Используйте драйвер реверберации
Используйте драйвер SMS Misr
Использовать драйвер электронной почты
Использовать драйвер базы данных
Используйте драйвер MessageBird
перед использованием этого пакета убедитесь, что вы установили
Нить Spatie, переводимая
Медиатека Filament Spatie
Центр настроек нити
композитор требует tomatophp/filament-alerts
теперь вам нужно опубликовать и перенести таблицу настроек
поставщик php artisan:publish --provider="SpatieLaravelSettingsLaravelSettingsServiceProvider" --tag="migrations"
после установки пакета запустите эту команду
php artisan filament-alerts: установить
если вы не используете этот пакет в качестве плагина, зарегистрируйте плагин в /app/Providers/Filament/AdminPanelProvider.php
->плагин(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() )
настроить любую модель для получения уведомлений
<?phpnamespace AppModels;используйте IlluminateContractsAuthMustVerifyEmail;используйте IlluminateDatabaseEloquentFactoriesHasFactory;используйте IlluminateFoundationAuthUser как аутентифицируемый;используйте IlluminateNotificationsNotifying;используйте LaravelFortifyTwoFactorAuthenticatable;используйте LaravelJetstreamHasProfilePhoto;use LaravelSanctumHasApiTokens; используйте SpatiePermissionTraitsHasRoles; используйте TomatoPHPFilamentAlertsTraitsInteractsWithNotifications; класс User расширяет Authenticatable {используйте HasApiTokens; используйте HasFactory; используйте HasProfilePhoto; используйте Notifying; используйте TwoFactorAuthenticatable; используйте HasRoles; используйте InteractsWithNotifications; ...
и вам необходимо установить настройки FCM, чтобы получать уведомления в режиме реального времени.
уведомление запускается в очереди, поэтому для отправки уведомлений необходимо запустить обработчик очереди
очередь php artisan: работа
вы можете использовать встроенное уведомление о нити, и мы добавим для вас macro
используйте FilamentNotificationsNotification;Notification::make('send') ->title('Тестовые уведомления') ->body('Это тестовое уведомление') ->icon('heroicon-o-bell') ->цвет('успех') ->actions([FilamentNotificationsActionsAction::make('view') ->label('Просмотр') ->url('https://google.com') -> пометить как прочитанное() ]) -> sendToDiscord(auth()->user()) -> sendToEmail(auth()->user()) -> широковещательная передача (аутентификация()->пользователь()) -> sendToDatabase(auth()->user()) -> sendToSlack(auth()->user()) ->sendToFCM(auth()->user())
Чтобы создать новый шаблон, вы можете использовать шаблон CRUD и убедиться, что ключ шаблона уникален, поскольку вы будете использовать его в каждом отдельном уведомлении.
для отправки уведомления вы должны использовать наш помощник SendNotification::class, например
SendNotification::make($template->providers) ->шаблон($шаблон->ключ) ->findTitle($matchesTitle) ->replaceTitle($titleFill) ->findBody($matchesBody) ->replaceBody($titleBody) ->модель(Пользователь::класс) ->id(Пользователь::first()->id) ->конфиденциальность('частный') -> огонь();
где $template
выбирается из шаблона по ключу, а $matchesTitle и $matchesBody — это массив совпадений для замены шаблона, а $titleFill и $titleBody — это массив значений для замены совпадений.
вы можете использовать несколько каналов уведомлений, например
Электронная почта
SMS
ФКМ
Реверберация
База данных
Слабый
Раздор
он может работать с прямыми пользовательскими методами, такими как
$user->notifySMSMisr(строка $message);$user->notifyEmail(строка $message, ?string $subject = null, ?string $url = null);$user->notifyFCMSDK(строка $message, строка $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);
Чтобы уведомления FCM работали, вам необходимо установить Filament Settings Hub и разрешить использование Setting Hub в плагине.
->плагин(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->useSettingsHub() ->useFCM() )
чем вам нужно установить пакет filament-fcm
используя эту команду
композитору требуется tomatophp/filament-fcm
и добавьте плагин поставщика услуг
->плагин(TomatoPHPFilamentFcmFilamentFcmPlugin::make())
теперь вам нужно обновить конфиг
# Проект FirebaseFIREBASE_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 MessagingFIREBASE_VAPID=# Звук оповещения FirebaseFCM_ALERT_SOUND=
чем запустить эту команду
PHP Artisan filament-fcm: установить
он создаст работника FCM, чтобы вы могли отправлять уведомления в фоновом режиме.
чтобы скрыть ресурсы уведомлений на боковой панели, вы можете использовать метод hideNotificationsResources
, например
->плагин(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->скрытьРесурсыУведомлений() )
Чтобы использовать драйвер Slack, вы должны установить веб-хук Slack в центре настроек и использовать метод плагина useSlack
, например
->плагин(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->useSlack() )
теперь в ваш файл .env
добавьте ключ SLACK_WEBHOOK
с URL-адресом веб-перехватчика.
Чтобы использовать драйвер Discord, вы должны установить веб-хук Discord в центре настроек и использовать метод плагина useDiscord
например
->плагин(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() -> использоватьDiscord() )
теперь в ваш файл .env
добавьте ключ DISCORD_WEBHOOK
с URL-адресом веб-перехватчика.
мы поддерживаем некоторые API для получения уведомлений и выполнения некоторых действий, которые вы можете найти в маршруте api/notifications
вы можете изменить модель пользователя, используя метод плагина apiModel
например
->плагин(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->apiModel(Пользователь::класс) )
вы можете опубликовать файл конфигурации с помощью этой команды
поставщик php artisan:publish --tag="filament-alerts-config"
вы можете опубликовать файл представлений с помощью этой команды
поставщик PHP Artisan:publish --tag="filament-alerts-views"
вы можете опубликовать языковой файл с помощью этой команды
поставщик php artisan:publish --tag="filament-alerts-lang"
вы можете опубликовать файл миграции с помощью этой команды
поставщик php artisan:publish --tag="filament-alerts-migrations"
Ознакомьтесь с нашим удивительным TomatoPHP