티스토리 뷰

구글에서 제공하는 API 가 많이 있는데 그 중에서 PHP버전의 구글 시트 API 를 활용해본다.

 

처음에는 "google docs api" 로 검색했었는데, 구글 독스는 워드용 이고

내가 원하는 구글 엑셀용 api 를 이용하고 싶으면 "google sheet api" 라고 검색해야 한다.

 

https://developers.google.com/sheets/api/?hl=ko

 

어떻게 어디서부터 시작해야할지 모를 땐 Quickstart 부터 해보는 게 좋겠다.

 

PHP 예제를 실행하려면 테스트할 수 있는 서버가 필요하다.

AWS 에서 1년짜리 무료 서버호스팅을 받아 이용할 수도 있는데,

서버에 대해서도 익힐겸 로컬에 서버를 설치하기로 했다.

PHP 와 아파치 서버를 설치하는 방법은 여러가지가 있지만 패키지로 묶인 WAMP 를 설치했다.

MySQL DB까지 한꺼번에 설치할 수 있어서 나중에 디비 작업이 필요할 때도 유용한 WAMP

설치마법사를 이용할 때 설치디렉토리 경로는 꼭 C 드라이브가 아니어도 된다!

D 나 F 든 데이터용 드라이브에 해도 아~무 상관 없어요.

 

PHP Google Sheet API 를 이용하려면 컴포져(Composer) 설치를 해야한다.

Prerequisites 에 있는 Composer 링크를 따라 들어가서 Download 클릭

https://getcomposer.org/download/

Composer-Setup.exe 실행파일을 다운받는다.

 

설치할 때 PHP 설치경로만 잘 찾아가면 컴포져 설치 완료!

 

제대로 설치가 됐는지 확인해보려면 cmd 창에서 composer -V 를 입력해본다.

이제 컴포져로 원하는 PHP 패키지들을 설치할 수 있다.


퀵스타터 예제 실행을 위한 준비 끝!

 

ENABLE THE GOOGLE SHEETS API 를 클릭해 credentials.json 파일을 다운받는다.

 

아파치 서버에 구글api 클라이언트를 설치해야한다. 

composer require google/apiclient:^2.0

(나는 htdocs 안에 설치를 했었는데, 그보다 상위 디렉토리에 설치하는 게 보안상 좋을 것 같다.)

설치하고 나면 vendor 폴더와 파일 2개(composer.json, composer.lock)가 생성된다.

vendor 가 있는 apache2 폴더에 Step1. 에서 다운받은 credentials.json 파일을 놓는다.

 

작업 디렉토리에 quickstart.php 를 생성한다.

작업 디렉토리는 아파치서버의 htdocs 폴더가 된다. (D:\Bitnami\wampstack-7.3.7-0\apache2\htdocs)

php 내용은 복사붙여넣기로 채워넣었다.

여기서 파일 경로를 두 곳 수정해줘야하는데, 주석으로 설명적어뒀다.

vendor 폴더와 같이 생성된 2개의 파일 그리고 credentials.json 파일이 quickstart.php 파일과 같은 경로라면 수정할 필요는 없다.

파일 준비가 되었다면 cmd 창에서 파일이 있는 디렉토리로 이동 후, php quickstart.php 로 실행한다.

인증에 필요한 코드를 받기 위해서 표시된 링크를 브라우저에서 연다.

코드는 그때그때 다르게 생성된다!!

 

결과값

// Prints the names and majors of students in a sample spreadsheet:
// https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/edit
$spreadsheetId = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms';
$range = 'Class Data!A2:E';
$response = $service->spreadsheets_values->get($spreadsheetId, $range);
$values = $response->getValues();

if (empty($values)) {
    print "No data found.\n";
} else {
    print "Name, Major:\n";
    foreach ($values as $row) {
        // Print columns A and E, which correspond to indices 0 and 4.
        printf("%s, %s\n", $row[0], $row[4]);
    }
}

실행 소스를 보면 Name 과 Major 를 출력하도록 했는데, 그대로 잘 출력되었다.

 

기본 구글api 의 php 를 익혔으니 본격적으로 레퍼런스 읽는 법을 알아본다.

 

댓글