구글 OAuth 2.0 , 애널리틱스 API 사용하기

2 2

http://charlie0301.blogspot.com/2015/09/google-analytics-api.html
잘 따라 해보자.

----=----
https://console.cloud.google.com/apis/dashboard
구글 콘솔

-----=-------
https://developers.google.com/analytics/devguides/reporting/core/v3/coreDevguide#javascript_1
Analytics API V3 코어 설명부분

https://developers.google.com/analytics/devguides/reporting/core/v4
Analytics Report API V4 코어 설명부분


API V4
1. 한번에 다중(최대 5개)의 요청 가능
2. 요청은 JSON 형식으로 POST 전송
3. 결과 JSON 이 V3와 구조가 다르다.

----=-----
https://ga-dev-tools.appspot.com/dimensions-metrics-explorer/
ga:xxxx 부분의 요소

------=--------
https://github.com/googleapis/google-api-php-client
GA용 PHP 라이브러리

-----=--------
https://developers.google.com/youtube/v3/guides/auth/server-side-web-apps?hl=ko#Obtaining_Access_Tokens
Obtaining OAuth 2.0 access tokens
토큰 받기





구글 OAuth 2.0 로그인 방법 (SDK 안쓰고 cURL 등을 사용 시)

scope : https://developers.google.com/identity/protocols/oauth2/scopes 에서 확인
client_id 와 client_secret 등은 구글의 API콘솔에서 확인 ( https://console.cloud.google.com/apis/credentials )

1.
https://accounts.google.com/o/oauth2/auth?scope={scope}&client_id={client_id}&response_type=code&access_type=offline&redirect_uri=urn:ietf:wg:oauth:2.0:oob
으로 브라우저로 접속하면, 구글 계정 선택창(또는 구글 로그인)이 나오고 계정을 선택하면 코드가 발급니다.
이 코드를 기억해 놓는다.

2.
POST로 https://oauth2.googleapis.com/token 으로
code: {1번에서 생성한 코드}
client_id: {client_id}
client_secret: {client_secret}
grant_type: authorization_code
redirect_uri: urn:ietf:wg:oauth:2.0:oob
로 값을 넘기면 

3.
{
"access_token":"~~~~~",
"expires_in":3599,
"refresh_token":"~~~~~~~",
"scope":"~~~~~~~~~",
"token_type":"Bearer"
}
과 같은 결과 가 나온다. 이 값을 저장해서 사용한다.

4. 주의
2번 단계를 다시 시도하면 에러가 난다.
1번에서의 코드는 1회용으로 필요시 코드를 새로 발급 받아서 2번 단계를 진행해야한다.

5. 사용중 인증이 만료되면 2번 단계를 다시 호출 하는 것이 아니라
POST로 https://oauth2.googleapis.com/token 으로
client_id: {client_id}
client_secret:{client_secret}
refresh_token:{refresh_token 3번에서 생성된}
을 전송하면

6.
{
  "access_token": "~~~~~",
  "expires_in": 3599,
  "scope": "~~~~~~~",
  "token_type": "Bearer"
}
처럼 나온다. 여기의 access_token 을 사용하면 된다.


이후 구글의 다른 API 통신에
해더에 
authorization: Bearer {access_token}
을 추가하면 인증 부분은 OK

댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
제목 작성자 날짜
공대여자
공대여자
mins01
공대여자
공대여자
#ga
공대여자
#ga
공대여자
공대여자
공대여자
#ga
공대여자
공대여자
공대여자