[PHP] 共有されたGoogleカレンダーをサービスアカウントでデータを取得

共有されたGoogleカレンダーで、listCalendarListがまったく取得できなくてハマってしましました。

解決方法

<?php
// ~/composer.phar require google/apiclient:^2.0
require_once __DIR__.'/vendor/autoload.php';

$aimJsonPath =  './Calendar.json';
$client = new Google_Client();
$client->setApplicationName('カレンダーリストの取得');
$client->setScopes(Google_Service_Calendar::CALENDAR);
$client->setAuthConfig($aimJsonPath);
$service = new Google_Service_Calendar($client);

// カレンダーの追加
$calendarID = 'カレンダーID';
$calendarListEntry = new Google_Service_Calendar_CalendarListEntry();
$calendarListEntry->setId($calendarID);
$service->calendarList->insert($calendarListEntry);

// カレンダーの削除
//$service->calendarList->delete($calendarID);

// カレンダーリストの取得
$list = $service->calendarList->listCalendarList();
?>

service accountのカレンダーに、共有が許可されたカレンダーを追加しないといけないんですね。
一度追加すればカレンダーの削除( calendarList->delete )または共有を解除するまで使用できるようです。

本当は共有された複数カレンダーの backgroundColor を取得したかったんですが、カレンダーによっては若干色が違うですね。

この記事が気に入ったら
いいねしてね!

よかったらシェアしてね!

コメント

コメントする

目次
閉じる