J'utilise le client google-api-php (API v3) pour afficher une liste d'événements de mon Google Agenda sur une page. Cela fonctionne, mais je voudrais mettre en cache les résultats localement sur le disque afin que je n'ai pas besoin de faire un appel d'API chaque fois que la page est chargée (le calendrier ne change pas beaucoup). Est-il possible de mettre en cache les résultats?Cache Google Calendar Événements de PHP API Demande GET
Il y a un fichier appelé Google_FileCache.php qui a une classe Google_FileCache() qui semble faire ce que je veux, mais je ne trouve aucune documentation à ce sujet, est-ce que quelqu'un l'a utilisé?
Voici mon code à ce jour:
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>';
}
Merci pour cet excellent morceau de code. –