"구글 API 튜토리얼"의 두 판 사이의 차이

105번째 줄: 105번째 줄:
  ************************************************/
  ************************************************/
#### require_once realpath(dirname(__FILE__) . '/../src/Google/autoload.php');
#### require_once realpath(dirname(__FILE__) . '/../src/Google/autoload.php');
require_once 'vendor/google-api-php-client/src/Google/autoload.php';
require_once 'Google/autoload.php';


/************************************************
/************************************************

2015년 9월 3일 (목) 01:13 판

Google API tutorial
구글 API 시작하기, 구글 API 튜토리얼

1 API 키 발급

  • https://console.developers.google.com/project 접속
  • API Project 클릭
  • 왼쪽 메뉴(Sidebar)에서 Credentials 클릭
  • OAuth 아래의 [Create new Client ID] 버튼 클릭
  • Application type 선택: (O) Service account[1] --- [Create Client ID] 버튼 클릭
  • "New Public/Private key pair generated" 창과 함께 json 파일이 다운로드됨 --- [Okay, got it]
화면에 표시되는 내용은...
Service Account
Client ID 871045965516-m6pxhmgmk0f6l6cdeq5alsbwh9own7ma.apps.googleusercontent.com
Email address 871045965516-m6pxhmgmk0f6l6cdeq5alsbwh9own7ma@developer.gserviceaccount.com
Certificate fingerprints tl28322d248g14q2kxt37d3253981ap8l878dyy3
Key for server applications
API key AIzaSyBDEuxz8GIb0K2df4_hjlMOQSU68npWYrA
IPs 135.79.246.80/32
Activation date Jan 22, 2015, 8:55:00 PM
Activated by example@gmail.com (you)
"API Project-6bd80f24cead.json" 파일의 내용은... (본 실습에서는 이 파일이 필요없지만 살펴보고 가자.)
{
  "private_key_id": "tl28322d248g14q2kxt37d3253981ap8l878dyy3",
  "private_key": "-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAM86vrJUfFHuzcqW\nByp+w+nWAI6iFzpaYiLTaXp1pjrRLmwAWfO094y1qmaO7vvCEFt06yGb1v5VkNg7\n2mVdTzpdCdYnpv2q1wUQ6x2O2p4jISgrocvigQXvGdsDA1HReNXRyV1kxZJbwA81\nuxH9edFCbCZW9/HMaEN0IhGm6iebAgMBAAECgYAVOTb+nJh+66436VWijIkUEc7M\nzN0EJO2YE37iA9qae4H9nauYwhf4WUKybkEbl6yFMVxDfOpv8eN7weWELCJI8LxR\nqTiw/f+BQnHyqSrvaY8x8siD7Z+1ut6ZCmIMwbRAx/OqVe0R23pfpuSblvgHYuW/\nI5TNxKytQo9HsbsmQQJBAOyNbA3GMj4QLwdQw/1EwnLLY/255Zrplgtv19PKrZ+N\nPvOb7v5dLzDaX0LaMnxqFK77WSf0GwO8ZWgfnkHZ3EUCQQDgRC4V0l6Lk0xaCJxF\ns27kkIWNnwYVaYpWOeHjbq5tE3dHlMgLzurtZ9s6a5w9faT4PcSW6Yv4ybIjVL+j\nM2JfAkBR7WEhHCXGjQBcvkJC84+NBphpBftZvdDzwRa1CZs8iUTmRnltq4RunRMl\nKkEWCf+D4xWr2sWIc7WDbH/5OqUpAkEAqa+MuyAgPzVlWN4Y97gLWM9s7bn8DWl8\nrT9AhifxvEA1SSjur9iQ8q5ZNvvDDNerYdTCkXkGWmip64etNFuluwJANo+7AVcO\nntq82SIVLV/MrTO1ZpIlIM3dJSPmFCBGtYWckr7uwi5QZp7VjZFdFcsh84LqVQdC\n3tDhhDau9E9+9w\u003d\u003d\n-----END PRIVATE KEY-----\n",
  "client_email": "871045965516-m6pxhmgmk0f6l6cdeq5alsbwh9own7ma@developer.gserviceaccount.com",
  "client_id": "871045965516-m6pxhmgmk0f6l6cdeq5alsbwh9own7ma.apps.googleusercontent.com",
  "type": "service_account"
}

2 구글API PHP 클라이언트 설치 요건 확인

  • PHP 버전 5.2.1 이상, JSON 확장기능[2]
[root@zetawiki ~]# php -v
PHP 5.3.3 (cli) (built: Oct 30 2014 20:12:53) 
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
[root@zetawiki ~]# php -m | grep json
json

3 git으로 구글API 클라이언트 설치

[root@zetawiki ~]# cd /usr/share/php/vendor/
[root@zetawiki vendor]# git clone https://github.com/google/google-api-php-client.git
Initialized empty Git repository in /usr/share/php/vendor/google-api-php-client/.git/
remote: Counting objects: 8528, done.
remote: Total 8528 (delta 0), reused 0 (delta 0), pack-reused 8528
Receiving objects: 100% (8528/8528), 5.57 MiB | 1.87 MiB/s, done.
Resolving deltas: 100% (5953/5953), done.
  • 심볼릭 링크 생성
[root@zetawiki vendor]# cd ..
[root@zetawiki php]# ln -s vendor/google-api-php-client/src/Google/ Google
[root@zetawiki php]# ll | grep Google
lrwxrwxrwx  1 root root   40 Sep  3 01:11 Google -> vendor/google-api-php-client/src/Google/

4 my_batch1.php 작성

  • 예제 batch.php를 홈폴더의 my_batch1.php로 복제하여 테스트
  • my_batch1.php를 편집하여 라이브러리 위치를 맞춰주고, apiKey를 입력
[root@zetawiki php]# cd
[root@zetawiki ~]# cp /usr/share/php/vendor/google-api-php-client/examples/batch.php .
[root@zetawiki ~]# cp batch.php my_batch1.php
[root@zetawiki ~]# vi my_batch1.php
... (생략)
#### include_once "templates/base.php";
include_once "vendor/google-api-php-client/examples/templates/base.php";
echo pageHeader("Batching Queries");

/************************************************
  We're going to use the simple access to the
  books API again as an example, but this time we
  will batch up two queries into a single call.
 ************************************************/
#### require_once realpath(dirname(__FILE__) . '/../src/Google/autoload.php');
require_once 'Google/autoload.php';

/************************************************
  We create the client and set the simple API
  access key. If you comment out the call to
  setDeveloperKey, the request may still succeed
  using the anonymous quota.
 ************************************************/
$client = new Google_Client();
$client->setApplicationName("Client_Library_Examples");
#### $apiKey = "<YOUR_API_KEY>"; // Change to your API key.
$apiKey = "AIzaSyBDEuxz8GIb0K2df4_hjlMOQSU68npWYrA";
... (생략)

5 테스트

[root@zetawiki ~]# php my_batch1.php 
<h3>Results Of Call 1:</h3>The Writings of Henry David Thoreau<br /> 
Walden<br /> 
A Week on the Concord and Merrimack Rivers<br /> 
... (생략)
Catalog of Copyright Entries<br /> 
Catalog of Copyright Entries. Part 1. [A] Group 1. Books. New Series<br /> 
Catalogue of Copyright Entries<br /> 
小泉信三文庫目録<br />
→ Book API가 잘 수행되었다. 다른 API도 사용해보자.[3]

6 같이 보기

7 주석

  1. Web application, Service account, Installed application 중 선택. 여기서는 필자의 목적에 맞게 Service account를 선택함
  2. https://github.com/google/google-api-php-client
  3. 단, API 종류에 따라 사용전 Enable 절차가 필요할 수 있다.

8 주석

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}