Envie notificações aos usuários usando modelos de notificação e canais de notificação múltipla, com suporte para Filament Native Notification Service com macro e integração total com notificações de service workers do FCM
Enviar notificação aos usuários
Use notificação nativa de filamento
Use modelos de notificação
Integração completa do Service Worker do FCM
Use vários canais de notificação
API para receber notificações
Ocultar recursos de notificações
Use o driver Slack
Use o driver Discord
Usar driver de reverberação
Use o driver SMS Misr
Usar driver de e-mail
Usar driver de banco de dados
Use o driver MessageBird
antes de usar este pacote, certifique-se de ter instalado
Filamento Spatie traduzível
Biblioteca de mídia Filament Spatie
Hub de configurações de filamento
compositor requer tomatephp/filament-alerts
agora você precisa publicar e migrar a tabela de configurações
fornecedor de artesão php:publish --provider="SpatieLaravelSettingsLaravelSettingsServiceProvider" --tag="migrations"
depois de instalar seu pacote, execute este comando
alertas de filamento do artesão php: instalar
se você não estiver usando este pacote como um plugin, registre o plugin em /app/Providers/Filament/AdminPanelProvider.php
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() )
para configurar qualquer modelo para receber notificações
<?phpnamespace AppModels;use IlluminateContractsAuthMustVerifyEmail;use IlluminateDatabaseEloquentFactoriesHasFactory;use IlluminateFoundationAuthUser como Authenticatable;use IlluminateNotificationsNotifiable;use LaravelFortifyTwoFactorAuthenticatable;use LaravelJetstreamHasProfilePhoto;use LaravelSanctumHasApiTokens;use SpatiePermissionTraitsHasRoles;use TomatoPHPFilamentAlertsTraitsInteractsWithNotifications;class User estende Authenticatable{use HasApiTokens;use HasFactory;use HasProfilePhoto;use Notifiable;use TwoFactorAuthenticatable;use HasRoles;use InteractsWithNotifications; ...
e você deve definir as configurações do FCM para receber notificações em tempo real
a notificação é executada na fila, portanto você deve executar o trabalhador da fila para enviar as notificações
fila de artesãos php:trabalho
você pode usar a notificação nativa do filamento e adicionaremos algumas macro
para você
usar FilamentNotificationsNotification;Notification::make('enviar') ->title('Notificações de teste') ->body('Esta é uma notificação de teste') ->icon('heróiícone-o-sino') ->cor('sucesso') ->actions([FilamentNotificationsActionsAction::make('view') ->rótulo('Visualizar') ->url('https://google.com') ->markAsRead() ]) ->sendToDiscord(auth()->user()) ->sendToEmail(auth()->user()) ->transmitir(auth()->usuário()) ->sendToDatabase(auth()->user()) ->sendToSlack(auth()->user()) ->sendToFCM(auth()->user())
para criar um novo modelo, você pode usar o modelo CRUD e certificar-se de que a chave do modelo é exclusiva, pois você a usará em todas as notificações.
para enviar uma notificação você deve usar nosso ajudante SendNotification::class like
SendNotification::make($template->provedores) ->modelo($modelo->chave) ->findTitle($matchesTitle) ->replaceTitle($titleFill) ->findBody($matchesBody) ->replaceBody($titleBody) ->model(Usuário::classe) ->id(Usuário::primeiro()->id) ->privacidade('privado') ->fogo();
onde $template
é selecionado do modelo por chave e $matchesTitle e $matchesBody são uma matriz de correspondências para substituir o modelo e $titleFill e $titleBody são uma matriz de valores para substituir as correspondências
você pode usar vários canais de notificação como
SMS
FCM
Reverberação
Banco de dados
Folga
Discórdia
pode funcionar com métodos diretos do usuário, como
$user->notifySMSMisr(string $message);$user->notifyEmail(string $message, ?string $subject = null, ?string $url = null);$user->notifyFCMSDK(string $mensagem, 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);
para fazer a notificação FCM funcionar, você precisa instalar o Filament Settings Hub e permitir o uso do Setting Hub no plug-in
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->useSettingsHub() ->usarFCM() )
do que você precisa para instalar o pacote filament-fcm
usando este comando
compositor requer tomatephp/filament-fcm
e adicione o plugin do provedor de serviços
->plugin(TomatoPHPFilamentFcmFilamentFcmPlugin::make())
agora você precisa atualizar a configuração
# Projeto 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=# Firebase Som de alertaFCM_ALERT_SOUND=
do que executar este comando
php artesão filamento-fcm:instalar
ele irá gerar um trabalhador FCM para você fazer notificações funcionando em segundo plano.
para ocultar os recursos de notificação da barra lateral você pode usar o método de plugin hideNotificationsResources
como
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->ocultarRecursosdeNotificações() )
para usar o driver slack você deve definir o webhook slack no hub de configurações e usar o método de plugin useSlack
like
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() -> usarSlack() )
agora no seu arquivo .env
adicione uma chave SLACK_WEBHOOK
com o URL do webhook
para usar o driver discord você deve definir o webhook discord no hub de configurações e usar o método de plugin useDiscord
like
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() -> usarDiscord() )
agora em seu arquivo .env
adicione uma chave DISCORD_WEBHOOK
com o URL do webhook
oferecemos suporte a algumas APIs para receber a notificação e realizar algumas ações que você pode encontrar na rota api/notifications
você pode alterar o modelo do usuário usando o método de plugin apiModel
como
->plugin(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->apiModel(Usuário::classe) )
você pode publicar o arquivo de configuração usando este comando
fornecedor de artesão php:publish --tag="filament-alerts-config"
você pode publicar o arquivo de visualizações usando este comando
fornecedor de artesão php:publish --tag="filament-alerts-views"
você pode publicar o arquivo de idiomas usando este comando
fornecedor de artesão php:publish --tag="filament-alerts-lang"
você pode publicar o arquivo de migração usando este comando
fornecedor de artesão php:publish --tag="filament-alerts-migrations"
Confira nosso incrível TomatoPHP