Google API 为用户订阅日历

Google API subscribe a user to a calendar

我的 PHP 代码使用服务帐户在 G Suite/Google 工作区中创建新用户。 那部分工作正常,但我想为新用户自动订阅我们的一些标准办公日历。当我 运行 以下代码时,日历被添加到服务帐户的列表中,而不是新用户。

$service = new Google_Service_Calendar($client);
$calendarListEntry = new Google_Service_Calendar_CalendarListEntry();
$calendarListEntry->setId("CalendarID");
$calendarListEntry = $service->calendarList->insert($calendarListEntry);

有没有办法插入到其他用户的日历列表中?

服务帐户有自己的 google 日历帐户您执行的任何操作都将在服务帐户 google 日历帐户上执行。

但是,如果您想在声明客户时模拟用户,则需要确保添加主题或您希望模拟的人。

putenv('GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json');
$client = new Google\Client();
$client->useApplicationDefaultCredentials();
Set the scopes required for the API you are going to call
$client->addScope(Google\Service\CALENDAR::CALENDAR);
$client->setSubject($user_to_impersonate);