Я пытаюсь в течение нескольких дней получить API-интерфейс Google Calendar и работать с ним совершенно без везения. Я использую PHP и учетную запись службы для аутентификации. Я следовал этому руководству (http://www.daimto.com/google-calendar-api-with-php-service-account/), а приведенный ниже код - из этого учебника.API календаря Google с PHP - учетная запись службы
У меня установлена консоль разработчиков, чтобы разрешить API-интерфейс календаря, и я добавил адрес электронной почты разработчиков в раздел общего ресурса календаря.
Когда я запускаю этот код, я просто получаю пустую страницу - без ошибок, без текста какого-либо типа, просто пустой белой страницы. Я полностью потерян - любая помощь будет высоко оценена. Приветствия
<?php
require 'vendor/autoload.php';
session_start();
$client_id = '123456789-qwertyuiop.apps.googleusercontent.com';
$Email_address = '[email protected]';
$key_file_location = 'path_to_key/key.p12';
$client = new Google_Client();
$client->setApplicationName("Client_Library_Examples");
$key = file_get_contents($key_file_location);
// separate additional scopes with a comma
$scopes ="https://www.googleapis.com/auth/calendar.readonly";
$cred = new Google_Auth_AssertionCredentials(
$Email_address,
array($scopes),
$key
);
$client->setAssertionCredentials($cred);
if($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$service = new Google_Service_Calendar($client);
?>
<html><body>
<?php
$calendarList = $service->calendarList->listCalendarList();
while(true) {
foreach ($calendarList->getItems() as $calendarListEntry) {
echo $calendarListEntry->getSummary()."<br>\n";
// get events
$events = $service->events->listEvents($calendarListEntry->id);
foreach ($events->getItems() as $event) {
echo "-----".$event->getSummary()."<br>";
}
}
$pageToken = $calendarList->getNextPageToken();
if ($pageToken) {
$optParams = array('pageToken' => $pageToken);
$calendarList = $service->calendarList->listCalendarList($optParams);
} else {
break;
}
}
?>
Надеюсь, вы сделали этот шаг https://developers.google.com/drive/web/delegation. Есть ли какие-либо события в календаре, откуда вы пытаетесь перечислить события. Вы можете попробовать образец запроса здесь https://developers.google.com/google-apps/calendar/v3/reference/events/list, чтобы проверить, не является ли его проблема с вашим календарем или нет. – SGC
Спасибо @SGC, да, я пробовал все эти вещи. Что, наконец, получило это, было добавление основного адреса электронной почты под вызов «посетителей». Но при этом у меня есть эта проблема: [link] (https://stackoverflow.com/questions/30825403/calendar-created-by-field) – Brad