Envíe notificaciones a los usuarios utilizando plantillas de notificación y canales de notificación múltiples, es compatible con el servicio de notificación nativo de Filament con macro y una integración completa con las notificaciones de los trabajadores del servicio FCM.
Enviar notificación a los usuarios
Utilice la notificación nativa de filamento
Usar plantillas de notificación
Integración completa del trabajador de servicio de FCM
Utilice múltiples canales de notificación
API para recibir notificaciones
Ocultar recursos de notificaciones
Utilice el controlador flojo
Usar el controlador de discordia
Usar controlador de reverberación
Utilice el controlador SMS Misr
Usar controlador de correo electrónico
Usar controlador de base de datos
Utilice el controlador MessageBird
antes de usar este paquete asegúrese de haberlo instalado
Filamento Spatie traducible
Biblioteca multimedia Filament Spatie
Centro de configuración de filamentos
El compositor requiere tomatephp/filament-alerts
ahora necesitas publicar y migrar la tabla de configuración
Proveedor artesanal de php: publicar --provider="SpatieLaravelSettingsLaravelSettingsServiceProvider" --tag="migraciones"
Después de instalar su paquete, ejecute este comando.
alertas de filamentos artesanales de php: instalar
Si no está utilizando este paquete como complemento, registre el complemento en /app/Providers/Filament/AdminPanelProvider.php
->complemento(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() )
para configurar cualquier modelo para recibir notificaciones
<?phpnamespace AppModels;use IlluminateContractsAuthMustVerifyEmail;use IlluminateDatabaseEloquentFactoriesHasFactory;use IlluminateFoundationAuthUser como autenticable;use IlluminateNotificationsNotifiable;use LaravelFortifyTwoFactorAuthenticatable;use LaravelJetstreamHasProfilePhoto;use LaravelSanctumHasApiTokens;use SpatiePermissionTraitsHasRoles;use TomatoPHPFilamentAlertsTraitsInteractsWithNotifications;clase Usuario extiende Authenticatable{use HasApiTokens;use HasFactory;use HasProfilePhoto;use Notifiable;use TwoFactorAuthenticatable;use HasRoles;use InteractsWithNotifications; ...
y debe configurar la configuración para que FCM reciba notificaciones en tiempo real
la notificación se ejecuta en la cola, por lo que debe ejecutar el trabajador de la cola para enviar las notificaciones
cola artesanal php:trabajo
puedes usar la notificación nativa del filamento y agregamos alguna macro
para ti
utilizar FilamentNotificationsNotificación;Notificación::hacer('enviar') ->título('Notificaciones de prueba') ->body('Esta es una notificación de prueba') ->icono('heroicono-o-campana') ->color('éxito') ->acciones([FilamentNotificationsActionsAction::make('ver') ->etiqueta('Ver') ->url('https://google.com') ->marcar como leído() ]) ->enviar a Discord(autenticación()->usuario()) ->enviar a correo electrónico (autenticación()->usuario()) ->transmisión(autenticación()->usuario()) ->enviar a base de datos (autenticación()->usuario()) ->enviar a Slack(autenticación()->usuario()) ->sendToFCM(auth()->usuario())
Para crear una nueva plantilla, puede usar la plantilla CRUD y asegurarse de que la clave de la plantilla sea única porque la usará en cada notificación.
para enviar una notificación debe utilizar nuestro asistente SendNotification::class como
EnviarNotificación::make($plantilla->proveedores) ->plantilla($plantilla->clave) ->buscarTítulo($matchesTítulo) ->reemplazarTítulo($títuloRellenar) ->buscarCuerpo($coincide conCuerpo) ->reemplazarCuerpo($títuloCuerpo) ->modelo(Usuario::clase) ->id(Usuario::primero()->id) ->privacidad('privado') ->fuego();
donde $template
se selecciona de la plantilla por clave y $matchesTitle y $matchesBody son una matriz de coincidencias para reemplazar la plantilla y $titleFill y $titleBody son una matriz de valores para reemplazar las coincidencias
puedes usar múltiples canales de notificación como
Correo electrónico
SMS
FCM
reverberación
Base de datos
Flojo
Discordia
puede estar trabajando con métodos de usuario directo como
$usuario->notificarSMSMisr(cadena $mensaje);$usuario->notificarEmail(cadena $mensaje, ?cadena $asunto = nulo, ?cadena $url = nulo);$usuario->notificarFCMSDK(cadena $mensaje, cadena $tipo= 'web', ?cadena $título=nulo, ?cadena $url=nulo, ?cadena $imagen=nulo, ?cadena $icono=nulo, ?matriz $datos=[]);$usuario->notifyDB(cadena $mensaje, ?cadena $título=null, ?cadena $url =null);$usuario->notifySlack(cadena $título,cadena $mensaje=null,?cadena $url=null, ?string $image=null, ?string $webhook=null);$usuario->notifyDiscord(string $title,string $message=null,?string $url=nulo, ?cadena $imagen=nulo, ?cadena $webhook=nulo);
Para que la notificación FCM funcione, debe instalar Filament Settings Hub y permitir el uso de Setting Hub en el complemento.
->complemento(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->usarConfiguraciónHub() ->usarFCM() )
de lo que necesita para instalar el paquete filament-fcm
usando este comando
el compositor requiere tomatephp/filament-fcm
y agregue el complemento del proveedor de servicios
->complemento(TomatoPHPFilamentFcmFilamentFcmPlugin::make())
ahora necesitas actualizar la configuración
# Proyecto 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=# Alerta de Firebase SonidoFCM_ALERT_SOUND=
que ejecutar este comando
php filamento artesanal-fcm:instalar
generará un trabajador FCM para que usted pueda realizar notificaciones trabajando en segundo plano.
Para ocultar los recursos de notificación de la barra lateral, puede utilizar el método de complemento hideNotificationsResources
como
->complemento(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->ocultarRecursos de notificaciones() )
Para usar el controlador de Slack, debe configurar el webhook de Slack en el centro de configuración y usar el método de complemento useSlack
como
->complemento(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->usarSlack() )
ahora en su archivo .env
agregue una clave SLACK_WEBHOOK
con la URL del webhook
Para usar el controlador de Discord, debe configurar el webhook de Discord en el centro de configuración y usar el método de complemento useDiscord
como
->complemento(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->usar Discordia() )
ahora en su archivo .env
agregue una clave DISCORD_WEBHOOK
con la URL del webhook
Admitimos algunas API para recibir la notificación y realizar algunas acciones. Puede encontrarla en la ruta api/notifications
.
puede cambiar el modelo de usuario utilizando el método de complemento apiModel
como
->complemento(TomatoPHPFilamentAlertsFilamentAlertsPlugin::make() ->apiModel(Usuario::clase) )
puedes publicar el archivo de configuración usando este comando
Proveedor artesanal de php: publicar --tag="filament-alerts-config"
puedes publicar archivos de vistas usando este comando
Proveedor artesanal de php: publicar --tag="filament-alerts-views"
puedes publicar archivos de idiomas usando este comando
Proveedor artesanal de php: publicar --tag="filament-alerts-lang"
puedes publicar el archivo de migraciones usando este comando
Proveedor artesanal de php: publicar --tag="filament-alerts-migrations"
Echa un vistazo a nuestro impresionante TomatoPHP