Я создал учетную запись службы для доступа к определенному календарю Google. этот пользователь учетной записи службы также получил разрешение в настройках календаря, как описано в этом блоге: « разрешить моему пользователю добавлять встречу в мой календарь с помощью Google Calendar API с PHP без аутентификации ».
Как я вижу в облачной платформе Google в разделе API + Сервисы -> Учетные данные в разделе Учетная запись службы, созданная учетная запись службы используется со всеми службами (за последние 30 дней) каждый раз, когда я запускаю этот сценарий php, но в окне браузера я не получаю сообщения об ошибке, что возникла бы проблема с аутентификацией, но: Неперехваченная ошибка: вызов функции-члена getSummary () с нулевым значением в строке ... сценария php Скрипт и настройки в Google Cloud Platform описаны в упомянутом сообщении.
Есть идеи, в чем может быть проблема? Изменилось ли что-нибудь в API календаря Google с момента публикации этой публикации в 2019 году?
require '../google-api-php-client/vendor/autoload.php';
ini_set('display_errors', 1);
$client = new Google_Client();
$client->addScope("https://www.googleapis.com/auth/calendar");
$client->setAuthConfig(dirname(__FILE__).'/credentials/credentials.json');
$service = new Google_Service_Calendar($client);
$calendarList = $service->calendarList->listCalendarList();
while(true) {
foreach ($calendarList->getItems() as $calendarListEntry) {
echo $calendarListEntry->getSummary();
echo "\n------------------------------\n\n";
// get events
$events = $service->events->listEvents($calendarListEntry->id);
foreach ($events->getItems() as $event) {
echo "- " . $event->getSummary() . "\n";
echo "- " . $event->getStart()->getDateTime() . "\n\n";
}
}
$pageToken = $calendarList->getNextPageToken();
if ($pageToken) {
$optParams = array('pageToken' => $pageToken);
$calendarList = $service->calendarList->listCalendarList($optParams);
} else {
echo "break";
break;
}
}
echo "calendar summary: " . $calendarListEntry->getSummary();
echo "\ncalendar id: " . $calendarListEntry->getId();
echo "\n------------------------------\n\n";
Очевидно, что $ calendarList и $ calendarListEntry пусты ....