mhsaheb/google-calendar

Google日历API助手

1.0.7 2023-11-07 09:53 UTC

This package is auto-updated.

Last update: 2024-09-07 11:40:19 UTC


README

此包为Laravel应用程序中与Google日历API交互提供了一种便捷方式。它允许您创建、更新、删除和检索Google日历中的事件。

安装

您可以通过运行以下命令通过Composer安装此包

composer require mhsaheb/google-calendar

配置

php artisan vendor:publish --tag=config

此命令将在您的配置目录中创建一个google-calendar.php文件。打开该文件并为您提供Google API凭证和其他所需信息。

使用

要使用此包,您需要创建GoogleEvent类的实例,该类扩展了GoogleCalendar类。以下是如何创建新事件的示例

use GoogleCalendar\GoogleEvent;

$event = new GoogleEvent();

// Set event details
$event->setName('My Event');
$event->setStartTime('2023-06-28T10:00:00');
$event->setEndTime('2023-06-28T12:00:00');
$event->setParams([
    'description' => 'This is a sample event',
    'location' => 'New York',
]);

// Add attendees
$event->setAttendees(['attendee1@example.com', 'attendee2@example.com']);

// Enable Google Meet for the event
$event->hasMeet();

// Create the event
$createdEvent = $event->createEvent();

您还可以使用以下方法检索事件列表或获取特定事件

// Get all events
$events = $event->getEvents();

// Get a specific event by ID
$eventId = 'your-event-id';
$event = $event->getEvent($eventId);

要更新或删除事件,您可以使用相应的方法

// Update an event
$eventId = 'your-event-id';
$updatedEvent = $event->updateEvent($eventId);

// Delete an event
$eventId = 'your-event-id';
$deletedEvent = $event->deleteEvent($eventId);

请注意,您需要正确设置配置文件中的Google日历API凭证,这些方法才能正常工作。

使用Google服务账户

如果您想使用Google服务账户与此包一起使用,您需要遵循以下额外步骤

  1. 确保您拥有Google Workspace(以前称为G Suite)账户并可以访问Google控制台。

  2. 为您的服务账户激活域-wide代理

    • 转到Google云控制台。
    • 选择您的项目并转到“IAM & Admin”->“服务账户”部分。
    • 找到您的服务账户并单击“编辑”按钮。
    • 启用“启用域-wide代理”选项。
    • 保存更改。
  3. 从您的服务账户JSON密钥文件中获取client_email。

  4. 激活域-wide代理策略

    • 转到您的Google Workspace管理员控制台。
    • 转到“安全”->“API控制”->“域-wide代理”。
    • 单击“添加新”并输入您的client_id。
    • 指定您想授予访问权限的 scopes(例如,https://www.googleapis.com/auth/cloud-platform)。
    • 保存更改。
  5. 在您的.env文件中,添加以下变量并使用client_email

GOOGLE_CALENDAR_IMPERSONATE=your-service-account-email@example.com

贡献

如果您遇到任何问题或对改进有建议,请随时在GitHub上打开问题或提交拉取请求。我们感谢您的贡献!

许可

此包是开源软件,根据MIT许可许可。