Google Calendar - Create Event сообщает об успешном, но не отображается в календаре - PullRequest
1 голос
/ 27 мая 2020

Я пытаюсь создать события Календаря Google с помощью API Календаря Google. В частности, я использую метод учетной записи службы, поскольку мое приложение будет обрабатывать массив событий для их создания и вставки в мой Календарь Google. Используемый язык: PHP.

Я загрузил клиентскую библиотеку PHP с gitHub. https://github.com/googleapis/google-api-php-client.

Мой тестовый код ниже. Это успешно завершается и возвращает мне длинный идентификатор события. Однако, когда я пытаюсь вставить это в свой браузер, он переводит меня в свой календарь и говорит: «Не удалось найти запрошенное событие». 28.05.2020 тоже ничего не показывает. Кто-нибудь, пожалуйста, позвольте мне понять, что я делаю неправильно?

Файл по адресу C: / sites / GoogleCredentials / service-account. json - это ключ моей учетной записи службы из учетных данных, которые я создал под своим проект в Google Cloud Console.

require_once('google-calendar/vendor/autoload.php');

    putenv('GOOGLE_APPLICATION_CREDENTIALS=C:/sites/GoogleCredentials/service-account.json');

    $client = new Google_Client();
    $client->useApplicationDefaultCredentials();
    $client->addScope(Google_Service_Calendar::CALENDAR_EVENTS);
    $service = new Google_Service_Calendar($client);

    $event = new Google_Service_Calendar_Event(array(
      'summary' => 'Google I/O 2015',
      'location' => '800 Howard St., San Francisco, CA 94103',
      'description' => 'A chance to hear more about Google\'s developer products.',
      'start' => array(
        'dateTime' => '2020-05-28T09:00:00',
        'timeZone' => 'America/New_York'
      ),
      'end' => array(
        'dateTime' => '2020-05-28T17:00:00',
        'timeZone' => 'America/New_York'
      )
    ));

    $calendarId = 'primary';
    $event = $service->events->insert($calendarId, $event);
    printf('Event created: '.$event->htmlLink);

1 Ответ

3 голосов
/ 27 мая 2020

Нужно помнить, что сервисный аккаунт - это не вы. У учетной записи службы есть собственная учетная запись календаря Google. События вставляются в его календарь Google, а не в ваш.

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

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

...