Как создать дополнительные календари Google, используя PHP и сервисные аккаунты? - PullRequest
0 голосов
/ 18 июня 2020

Я пытаюсь создать дополнительные календари для календаря, который используется совместно с учетной записью службы. Мой код выглядит следующим образом:

putenv('GOOGLE_APPLICATION_CREDENTIALS='.__DIR__.'/service_account.json');
define('SCOPES', Google_Service_Calendar::CALENDAR);

    $client = new Google_Client();
    $client->setApplicationName('REdu Calendars');
    $client->useApplicationDefaultCredentials();
    $client->addScope([SCOPES]);
    $client->setAccessType('offline');

    $service = new Google_Service_Calendar($client);

    $calendar = new Google_Service_Calendar_Calendar();
    $calendar->setSummary($userName);
    $calendar->setTimeZone('America/Los_Angeles');
    $createdCalendar = $service->calendars->insert($calendar);

Я думаю, что приведенный выше код создает дополнительный календарь в учетной записи службы. Что мне действительно нужно, так это возможность создать дополнительный календарь в календаре, который используется совместно с учетной записью службы . Любая помощь приветствуется.

1 Ответ

0 голосов
/ 19 июня 2020

Чтобы создать дополнительный календарь для пользователя, который поделился своим календарем с учетной записью службы, вам необходимо выдать себя за владельца календаря

Требования:

Пример для PHP:

    $client = new Google_Client();
    $client->setSubject('ownerOfCalendar@domain.com');
    $client->setApplicationName('REdu Calendars');
    $client->useApplicationDefaultCredentials();
    $client->addScope([SCOPES]);
    $client->setAccessType('offline');

    $service = new Google_Service_Calendar($client);
...