Dengan API Google Calender kita dapat melakukan sinkronisasi antara aplikasi kita dengan Google Calender. Tutorial ini menggunakan bahasa pemrograman PHP dalam mengimplementasikan API Google Calender.
Hal-hal yang perlu disiapkan sebelum dalam menggunakan API Google Calender
- PHP versi 5.4 atau yang lebih baru
- Sudah terinstall composer. Bagi yang belum melakukan instalasi composer dapat melihat artikel Cara Install Composer pada Windows.
- Google akun dan sudah mengaktifkan Google Calender.
Berikut langkah-langkah untuk menggunakan API Google Calender
- Aktifkan API Google Calender. Download credentials.json
- Install Google Client Library.
Silahkan dicek di windows explorer. File dependency Google Client Library sudah ada. - Buat file calender.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
<?php require __DIR__ . '\autoload.php'; if (php_sapi_name() != 'cli') { throw new Exception('This application must be run on the command line.'); } function getClient() { $client = new Google_Client(); $client->setApplicationName('Google Calendar API PHP Quickstart'); $client->setScopes(Google_Service_Calendar::CALENDAR_READONLY); $client->setAuthConfig('credentials.json'); $client->setAccessType('offline'); $client->setPrompt('select_account consent'); // Load previously authorized token from a file, if it exists. // The file token.json stores the user's access and refresh tokens, and is // created automatically when the authorization flow completes for the first // time. $tokenPath = 'token.json'; if (file_exists($tokenPath)) { $accessToken = json_decode(file_get_contents($tokenPath), true); $client->setAccessToken($accessToken); } // If there is no previous token or it's expired. if ($client->isAccessTokenExpired()) { // Refresh the token if possible, else fetch a new one. if ($client->getRefreshToken()) { $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken()); } else { // Request authorization from the user. $authUrl = $client->createAuthUrl(); printf("Open the following link in your browser:\n%s\n", $authUrl); print 'Enter verification code: '; $authCode = trim(fgets(STDIN)); // Exchange authorization code for an access token. $accessToken = $client->fetchAccessTokenWithAuthCode($authCode); $client->setAccessToken($accessToken); // Check to see if there was an error. if (array_key_exists('error', $accessToken)) { throw new Exception(join(', ', $accessToken)); } } // Save the token to a file. if (!file_exists(dirname($tokenPath))) { mkdir(dirname($tokenPath), 0700, true); } file_put_contents($tokenPath, json_encode($client->getAccessToken())); } return $client; } // Get the API client and construct the service object. $client = getClient(); $service = new Google_Service_Calendar($client); // Print the next 10 events on the user's calendar. $calendarId = 'primary'; $optParams = array( 'maxResults' => 10, 'orderBy' => 'startTime', 'singleEvents' => true, 'timeMin' => '2019-07-01T08:36:00.000Z', 'timeMax' => '2019-07-31T08:36:00.000Z', ); $results = $service->events->listEvents($calendarId, $optParams); $events = $results->getItems(); if (empty($events)) { print "No upcoming events found.\n"; } else { print "Upcoming events:\n"; foreach ($events as $event) { $start = $event->start->dateTime; if (empty($start)) { $start = $event->start->date; } echo $event->getSummary(), " | ", $start; echo "\n"; echo $event->creator->email; echo "\n"; echo $event->getDescription(); echo "\n"; echo "===========================================\n"; } } ?> |
Jalankan file calender.php, dengan cara ketik “php calender.php”
Setelah dijalankan akan muncul link sebagai berikut
Copy kemudian jalankan di browser.
Buka Quickstart (tidak aman). Kemudian pilih akun google.
Berikan izin ke Quickstart, pilih Izinkan.
Melihat calender Anda, pilih Izinkan lagi
Muncul code otorisasi sebagai berikut.
Copy code tersebut dan tempel di command prompt. Kemudian enter. Selamat, Anda sudah dapat mengakses data dari Google Calender.
Beberapa variable yang dapat diambil dari Google Calender:
- $event->getSummary() : Judul event
- $event->creator->email : Email pembuat
- $event->getDescription() : Deskripsi event
- $event->start->dateTime : Waktu awal event
- $event->end->dateTime: Waktu akhir event