jlbousing / outlook-calendar-sdk
PHP SDK for Microsoft Outlook Calendar API
Requires
- php: ^7.4|^8.0
- ext-json: *
- guzzlehttp/guzzle: ^7.0
This package is auto-updated.
Last update: 2025-04-22 16:11:48 UTC
README
Este paquete proporciona una integración sencilla con la API de Microsoft Outlook Calendar para aplicaciones PHP. Permite gestionar eventos, reuniones y citas en calendarios de Outlook/Office 365.
Requisitos
- PHP 7.4 o superior
- Extensión PHP JSON
- Cuenta de Microsoft y una aplicación registrada en Azure Portal
Instalación
Instala el paquete usando Composer:
composer require jlbousing/outlook-calendar-sdk
Configuración
Para usar el SDK, necesitarás registrar una aplicación en el Portal de Azure y obtener un Client ID y Client Secret:
- Inicia sesión en el Portal de Azure
- Navega a "Azure Active Directory" > "Registros de aplicaciones"
- Crea una nueva aplicación
- Configura los permisos necesarios (mínimo:
Calendars.ReadWrite
) - Añade una URL de redirección (por ejemplo,
http://localhost/callback.php
) - Crea un secreto de cliente
Ejemplo básico de uso
<?php require_once __DIR__ . '/vendor/autoload.php'; use OutlookCalendarSDK\Auth\OAuthProvider; use OutlookCalendarSDK\Services\EventService; use OutlookCalendarSDK\Models\Event; // Configuración $clientId = 'TU_CLIENT_ID'; $clientSecret = 'TU_CLIENT_SECRET'; $redirectUri = 'http://localhost/callback.php'; // Autenticación $oauthProvider = new OAuthProvider($clientId, $clientSecret, $redirectUri); // Obtener URL de autorización $authUrl = $oauthProvider->getAuthUrl(); // Tras la redirección, obtener el token $tokenData = $oauthProvider->getAccessToken($_GET['code']); $accessToken = $tokenData['access_token']; // Crear un servicio de eventos $eventService = new EventService($accessToken); // Crear un nuevo evento $startTime = new DateTime(); $startTime->modify('+1 day'); $endTime = clone $startTime; $endTime->modify('+1 hour'); $event = new Event( 'Reunión de equipo', $startTime, $endTime, '<p>Discutiremos los avances del proyecto.</p>', 'Sala de conferencias' ); // Publicar el evento en el calendario $createdEvent = $eventService->createEvent($event); // Listar eventos $events = $eventService->listEvents(['$top' => 10]);
Funcionalidades principales
Autenticación
El SDK utiliza OAuth 2.0 para autenticarse con Microsoft Graph API:
$oauthProvider = new OAuthProvider($clientId, $clientSecret, $redirectUri); $authUrl = $oauthProvider->getAuthUrl(); // URL para dirigir al usuario $tokenData = $oauthProvider->getAccessToken($code); // Obtener token con el código $newTokenData = $oauthProvider->refreshToken($refreshToken); // Renovar token
Gestión de eventos
// Crear evento $event = new Event($subject, $startDateTime, $endDateTime, $body, $location); $eventService->createEvent($event); // Listar eventos $events = $eventService->listEvents(['$top' => 10]); // Obtener un evento específico $event = $eventService->getEvent($eventId); // Actualizar evento $eventService->updateEvent($eventId, $updatedEvent); // Eliminar evento $eventService->deleteEvent($eventId);
Añadir participantes
$event = new Event('Reunión', $start, $end); $event->addAttendee(new Attendee('usuario@ejemplo.com', 'Nombre Usuario', 'required'));
Configurar reuniones online (Teams)
$event->setOnlineMeeting(true, 'teamsForBusiness');
Ejemplos completos
Consulta los archivos ejemplo.php
y callback.php
incluidos para ver ejemplos completos de uso del SDK.
Documentación de la API de Microsoft Graph
Para más información sobre la API de Microsoft Graph, consulta la documentación oficial.
Licencia
Este proyecto está licenciado bajo la Licencia MIT.