GAE PHP Google calendar 적용하기
Google Calendar를 사용하려면 curl을 사용하여야 한다. 그러나 Google App Engine에서는 기본적으로 curl을 지원하지 않으므로 먼저 프로젝트 폴더의 최상위에 php.ini란 파일을 만들어 extension = "curl.so" 를 입력하고 저장한다.
그리고 https://github.com/google/google-api-php-client 에서 Download ZIP을 눌러 폴더를 다운 받는다. 그리고 프로젝트 폴더의 최상위에 넣는다.(사실 원하는 곳 어디든 상관없다.)
앞서 받은 google-api-php-client 를 코드상에서 실행하려면 아래의 코드가 필요하다.
$client = new Google_Client(); $client->setApplicationName("Your Application Name"); $client->setDeveloperKey('API KEY');
그리고 OAuth를 이용해주어야 private한 Google calendar를 받아올 수 있는데 이는 다른 포스팅을 통해서도 정보를 얻을 수 있을 것이라 생각하기에 생략하기로 한다.
이제 Google Claendar를 만들어 줄 차례이다.
$cal = new Google_Service_Calendar($client); $calendarId = 'google_calendar_id'; $params = array( 'singleEvents' => true, 'orderBy' => 'startTime', 'timeMin' => date(DateTime::ATOM), 'maxResults' => 30 ); $events = $cal->events->listEvents($calendarId, $params); $calTimeZone = $events->timeZone; date_default_timezone_set($calTimeZone);
코드를 읽으면 적당한 변수명과 함께 이해가 가능할 것이다. Google calendar를 만들어 주면 그 다음은 받아온 event를 표시해야 할 것이다.
foreach($event->getItems() as $event) { $eventDataStr = $event->start->dataTime; ... $timezone = new DateTimeZone($event->start->timeZone); $eventdata = new DateTime($eventDateStr, $timezone); ... $year = $eventdate->fomart("Y"); $month = $eventdate->format("m"); $day = $eventdate->format("d"); ... }
이런 식으로 각각의 event를 받아와 표시할 수 있다.
사실 구글 검색으로 헤매고 헤메다 아래의 링크를 참고하여 할 수 있게 되었다. 한국어로는 아예 정보가 없는 상태라 포스팅을 하게 되었다. 원본 코드를 확인하고 싶다면 아래 링크를 들어가보길 바란다.
http://spunmonkey.design/display-contents-google-calendar-php/