承接 jlbousing/outlook-calendar-sdk 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jlbousing/outlook-calendar-sdk

Composer 安装命令:

composer require jlbousing/outlook-calendar-sdk

包简介

PHP SDK for Microsoft Outlook Calendar API

README 文档

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, incluyendo soporte completo para reuniones de Microsoft Teams.

Requisitos

  • PHP 7.4 o superior
  • Extensión PHP JSON
  • Cuenta de Microsoft y una aplicación registrada en Azure Portal
  • Permisos necesarios para reuniones en línea (Teams)

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:

  1. Inicia sesión en el Portal de Azure
  2. Navega a "Azure Active Directory" > "Registros de aplicaciones"
  3. Crea una nueva aplicación
  4. Configura los permisos necesarios:
    • Calendars.ReadWrite (para gestión básica del calendario)
    • OnlineMeetings.ReadWrite (para reuniones de Teams)
  5. Añade una URL de redirección (por ejemplo, http://localhost/callback.php)
  6. 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 con Teams
$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>',
    'Microsoft Teams'
);

// Habilitar la reunión de Teams
$event->setOnlineMeeting(true);

// Publicar el evento en el calendario
$createdEvent = $eventService->createEvent($event);

// Obtener la URL de la reunión de Teams
$teamsUrl = $event->getOnlineMeetingJoinUrl();

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)

// Crear un evento con Teams
$event = new Event('Reunión virtual', $start, $end);
$event->setOnlineMeeting(true); // Habilitar Teams

// Crear el evento
$createdEvent = $eventService->createEvent($event);

// Obtener la URL de la reunión
$joinUrl = $event->getOnlineMeetingJoinUrl();

// Configurar opciones adicionales
$event->setAllowNewTimeProposals(true); // Permitir proponer nuevos horarios

Características de reuniones Teams

  • Generación automática de enlaces de reunión
  • Integración con el calendario de Outlook
  • Soporte para propuestas de nuevos horarios
  • URLs únicas para unirse a la reunión
  • Notificaciones automáticas por correo a los participantes

Manejo de respuestas

El SDK maneja automáticamente las respuestas de la API y actualiza los objetos Event con la información relevante:

// La URL de Teams se establece automáticamente después de crear el evento
$event = new Event('Reunión virtual', $start, $end);
$event->setOnlineMeeting(true);
$eventService->createEvent($event);

// Obtener la URL de Teams
$teamsUrl = $event->getOnlineMeetingJoinUrl();

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.

统计信息

  • 总下载量: 2
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-22