終於找到了解決辦法。在這裏發帖,如果我得到任何空閒時間,可能會在以後完成一個完整的教程:)。希望它可以幫助別人。
https://console.developers.google.com/iam-admin/projects 創建這應該帶你到控制檯創建後一個項目......如果不是在這裏是在圖書館部分啓用「谷歌日曆API」控制檯鏈接https://console.developers.google.com/
。搜索Google Calendar API,選擇它並使用頂部顯示的啓用按鈕。
轉到憑據部分並添加服務帳戶密鑰。新的服務帳戶(任何你想要的名字)。
羅爾斯:
項目>瀏覽器
的App Engine> App Engine的瀏覽器
存儲>對象查看器
你可能並不需要所有這些,但似乎是combonation是爲我工作。確保選擇了JSON,然後創建它將下載一個.json文件。它只下載一次,無法重新下載,因此請確保您下載並將其保存在安全的地方。
在此處下載PHP的最新API https://developers.google.com/google-apps/calendar/downloads並將其上傳到您網站的任何位置。相當大的支持文件可能需要一段時間才能上傳。
那麼這是PHP代碼爲我工作:)
CALENDARID是你的日曆... 從您的谷歌日曆的ID,使用彈出,然後選擇「日曆設置」。然後在「日曆地址:」部分的底部記下日曆ID。應該是某種google.com電子郵件地址或您的電子郵件地址,如果您通過gSuite工具進行設置。
「YOURJSON.json」是您先前下載的json文件的名稱。建議讓它更安全的是將其上傳到您網站的根目錄並從那裏鏈接到它。由於它只是讀取角色,所以不應該引起任何問題,以免出現問題。
require_once行是您將google API上傳到服務器的任何位置。不要忘記/vendor/autoload.php部分:)。
這是爲我工作的解決方案(2017-04-24)。 PHP代碼的最後一行是一個通用的echo命令,因此您可以看到您獲得的數組以及所有可用的數據。我沒有看到的唯一一件事就是事件的自定義顏色。有一個空間,但似乎並沒有結束。
<?php
$maxEvents = 100;
$minStartDate = date('c');
$calendarId = 'CALENDARID';
//path to the google API on your server
require_once 'inc/google-api-php-client-2.1.3_PHP54/vendor/autoload.php';
//set environment variable to use your downloaded Service account key
putenv("GOOGLE_APPLICATION_CREDENTIALS=YOURJSON.json");
$scope = 'https://www.googleapis.com/auth/calendar.readonly';
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setScopes($scope);
$service = new Google_Service_Calendar($client);
//options link
// https://developers.google.com/google-apps/calendar/v3/reference/events/list
$options = array(
'maxResults' => $maxEvents,
'orderBy' => 'startTime',
'singleEvents' => TRUE,
//UNIX timestamp format
'timeMin' => $minStartDate,
//to use a calendar other than the default uncomment and enter the calendar's ID
//not really needed here since you're using the $calendarId but does pull another calendar and more for completeness
//'iCalUID' => 'CAL_ID_FROM_GOOGLE_CALENDAR'
);
$results = $service->events->listEvents($calendarId, $options);
//echo 'results<br><pre>';print_r($results); echo '</pre><br>';
?>