iseazylms / teams-notificator
Paquete PHP para enviar notificaciones a Teams (Power Automate / Webhook).
Requires
- php: ^7.2 || ^8.0
- ext-curl: *
- ext-json: *
Requires (Dev)
- monolog/monolog: ^2.0 || ^3.0
- phpunit/phpunit: ^8.5 || ^9.6 || ^10.5 || ^11.5
Suggests
- monolog/monolog: Necesario para el canal de log de Teams (LmsTeamsNotificator\Logging), compatible con ^2.0 y ^3.0
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-16 08:56:51 UTC
README
Paquete PHP para enviar notificaciones a Microsoft Teams (Power Automate / webhook).
Compatible con PHP 7.2 a 8.x. El canal de log funciona con Monolog 2 (Laravel 7 a 9) y Monolog 3 (Laravel 10 en adelante).
Instalación
composer require iseazylms/teams-notificator
Envío directo
use LmsTeamsNotificator\LmsTeamsNotificator; (new LmsTeamsNotificator('Proceso terminado', $webhookUrl)) ->setText('**Duración**: 3 min') ->notify();
Envía {"message": "..."} al webhook, para un flujo de Power Automate que lea el campo message. Si el envío falla, lanza HttpRequestException.
Canal de log (Laravel)
Requiere monolog/monolog (Laravel ya lo incluye). En config/logging.php:
'teams' => [ 'driver' => 'custom', 'via' => \LmsTeamsNotificator\Logging\TeamsLogger::class, 'url' => env('TEAMS_LOG_WEBHOOK_URL'), 'level' => env('TEAMS_LOG_LEVEL', 'error'), 'format' => 'message', // o 'adaptive_card' 'title' => 'Mi aplicación', // opcional ],
format:message(por defecto):{"message": "..."}con el mensaje y una línea**clave**: valorpor cada dato del contexto.adaptive_card: una Adaptive Card con el mensaje en el color del nivel y una fila por cada dato del contexto, para un webhook que publique la tarjeta tal cual.
title: texto que precede al mensaje, para distinguir el origen.- Sin
url, el canal descarta los registros. - En el contexto, los objetos se muestran por su clase y el resto de valores que no son texto, como JSON.
Fuera de Laravel, LmsTeamsNotificator\Logging\TeamsHandler es un handler de Monolog normal.
Tests
composer install
composer test
Para inyectar un cliente HTTP falso en los tests, LmsTeamsNotificator y TeamsHandler aceptan una implementación de HttpClientInterface.