已下载脚本here并进行设置。但是当我尝试获取日历时,它会返回空列表。我想得到所有的日历列表 与帐户共享。请注意,我的Gmail帐户共享了4个日历。我也遵循这个instruction。
**Code**
$key = file_get_contents($key_file_location);
$scopes ="https://www.googleapis.com/auth/calendar.readonly";
$cred = new Google_Auth_AssertionCredentials(
$service_account_name,
array($scopes),
$key
);
$client->setAssertionCredentials($cred);
if ($client->getAuth()->isAccessTokenExpired()) {
$client->getAuth()->refreshTokenWithAssertion($cred);
}
$_SESSION['service_token'] = $client->getAccessToken();
$service = new Google_Service_Calendar($client);
echo "<br>=======================<br>";
var_dump($service->calendarList->listCalendarList());
echo "<br>=======================<br>";
?>
输出
=======================
object(Google_Service_Calendar_CalendarList)[23] protected 'collection_key' => string 'items' (length=5) protected 'internal_gapi_mappings' =>
array (size=0)
empty public 'etag' => string '"1462447526879000"' (length=18) protected 'itemsType' => string 'Google_Service_Calendar_CalendarListEntry' (length=41) protected 'itemsDataType' => string 'array' (length=5) public 'kind' => string 'calendar#calendarList' (length=21) public 'nextPageToken' => null public 'nextSyncToken' => string 'CJi-3srpwswCEjVhYmNkZWZAc2tpbGxmdWwtY29zaW5lLTEyNDYwNi5pYW0uZ3NlcnZpY2VhY2NvdW50LmNvbQ==' (length=88) protected 'modelData' =>
array (size=1)
'items' =>
array (size=0)
empty protected 'processed' =>
array (size=0)
empty
=======================
答案 0 :(得分:0)
当文件处于json格式下面时,读取密钥有一些变化是正确的代码
$key = file_get_contents($key_file_location);
$data = json_decode($key);
$scopes = array("https://www.googleapis.com/auth/calendar.readonly","https://www.googleapis.com/auth/calendar");
$cred = new Google_Auth_AssertionCredentials(
$service_account_name,
$scopes,
$data->private_key
);
$client->setAssertionCredentials($cred);
try {
$client->getAuth()->refreshTokenWithAssertion($cred);
} catch (Exception $e) {
$e->getMessage();
}
$calendarList = $service->calendarList->listCalendarList();
var_dump($calendarList);