google-api-php-client (API v3)을 사용하여 페이지의 내 Google 캘린더에서 이벤트 목록을 표시합니다. 그것은 작동하지만, 내가 페이지를로드 할 때마다 API 호출을하지 않아도 (달력이 많이 변경되지 않음) 결과를 디스크에 로컬로 캐시하고 싶습니다. 결과를 캐시 할 수 있습니까?PHP API에서 Google 캘린더 이벤트 캐시 GET 요청
Google_FileCache.php라는 파일이 있는데 원하는대로 할 수있는 것처럼 보이는 Google_FileCache() 클래스가 있지만 누구나 사용하고있는 설명서가 전혀 없습니다. 이 작업을 수행하는 방법을 찾고 다른 사람에 대한 참고
require_once 'google-api-php-client/src/Google_Client.php';
require_once 'google-api-php-client/src/contrib/Google_CalendarService.php';
session_start();
$CLIENT_ID = '{my client ID}';
$SERVICE_ACCOUNT_NAME = '{my service account name}';
$KEY_FILE = '{my p12 key file}';
$client = new Google_Client();
$client->setApplicationName("Public Calendar");
$client->setUseObjects(true);
if (isset($_SESSION['token'])) {
$client->setAccessToken($_SESSION['token']);
}
$key = file_get_contents($KEY_FILE);
$client->setAssertionCredentials(new Google_AssertionCredentials(
$SERVICE_ACCOUNT_NAME,
array('https://www.googleapis.com/auth/calendar', "https://www.googleapis.com/auth/calendar.readonly"),
$key)
);
$client->setClientId($CLIENT_ID);
$service = new Google_CalendarService($client);
if ($client->getAccessToken()) {
$_SESSION['token'] = $client->getAccessToken();
}
$rightNow = date('c');
$params = array('singleEvents' => 'true', 'orderBy' => 'startTime', 'timeMin' => $rightNow);
$events = $service->events->listEvents('primary', $params);
foreach ($events->getItems() as $event) {
echo '<p>'.$event->getSummary().'</p>';
}
감사합니다. –