API Календаря Google, getItem и getSummery ничего не возвращает

0

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

require_once "./google-api-php-client/src/Google/Client.php";
require_once "./google-api-php-client/src/Google/Service/Calendar.php";

// Service Account info
$client_id          = "XXXXXX-XXXXXXXXXXXXXXXXXXXXX.apps.googleusercontent.com";
$app_name               = "Some-name";
$service_account_name   = '[email protected]';
$key_file_location  = 'google-api-php-client/Some-name-xxxxxxxxxx.p12';
$cal_id             = "primary";

// Service Account info
$client_id              = $client_id;
$service_account_name   = $service_account_name;
$key_file_location  = $key_file_location;

// Calendar id
$calName                = $cal_id;


$client = new Google_Client();
$client -> setApplicationName($app_name);

$service = new Google_Service_Calendar($client);

$key = file_get_contents($key_file_location);

$cred = new Google_Auth_AssertionCredentials(
    $service_account_name,
    array('https://www.googleapis.com/auth/calendar.readonly'),
    $key
);

$client->setAssertionCredentials($cred);

$cals = $service->calendarList->listCalendarList();
print_r($cals);
echo "<br>events<br>";

$events = $service->events->listEvents($calName);

var_dump($events);

echo "<br>result:<br>";
// the following is what returns nothing, works fine until this point.

$i = 0;
foreach ( $events->getItems() as $event ) {
    echo 'i:'.$i.' '.$event->getSummary();
    $i++;
}
echo 'end';
Теги:
google-calendar

1 ответ

0

Измените $ events на следующую строку:

$ events = $service-> events-> listEvents ('primary', $ params);

Вместо первичного добавить $ calName, а также отправить $ params в методе listEvents.

Надеюсь, это сработает.

  • 0
    Я не знаю, если быть честным, потому что теперь он выдает «Ошибка обновления токена OAuth2, сообщение:« {«error»: «invalid_grant»} ». Я бы хотел, чтобы в документации не было такого беспорядка устаревшего кода / документации.
  • 0
    Invalid_grant выдается, когда токен обновления не работает. Это происходит, когда количество токенов обновления превышает ограничение, старые токены становятся недействительными. Таким образом, когда приложение пытается использовать недопустимый токен обновления, возвращается сообщение об ошибке invalid_grant.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню