SlideShare a Scribd company logo
1 of 11
Download to read offline
Using Google API in Go
Apr 20, 2013
Jongmin Kim
GDG Korea Golang
차례
 OAuth
 API console, API explorer 등의 도구들
 Keys, access, security, and identity
 Google API를 사용하기 위한 패키지들
 Web applications 인증 데모
 Service accounts 인증 데모
 Google APIs Directory Service
 Google Auth Proxy by Bitly
OAuth 1.0a
Atoiain Ouhram"tp/aigol.o/,
 uhrzto: At el=ht:/p.ogecm"
     ouhcnue_e=08b98jh2"
      at_osmrky"65d14fq2,
     ouhtkn"d8jd3kr7,
      at_oe=a10j73lu"
     ouhsgauemto=HA-H1,
      at_intr_ehd"MCSA"
     ouhsgaue"OI925FDivbSK2P%D,
      at_intr=wJOAWmwgDZTM%FY3"
     ouhtmsap"3110"
      at_ietm=17320,
     ouhnne"521e81dd52c1816,
      at_oc=476646666746667"
     ouhvrin"."
      at_eso=10


  HMAC을 이용한 암호화 인증 방식만 제공
  매번 signature를 생성해야 함
  curl 등으로 테스트해보기 어려움
  기본적으로 3-legged 모델
OAuth 2.0
  3-legged 뿐만 아니라 2-legged 모델도 지원
  아직 draft 버전 31. Google은 22 구현. Facebook은 12 구현
  Client(1.0a에서 Consumer)는 Public Client와 Confidential Client로 크게 나뉨
  명칭이 아래처럼 바뀜
10
 .a                          20
                              .
Ue
 sr                    →  Rsuc Onr
                           eore we
Cnue
 osmr            →   Cin
                      let
SriePoie
 evc rvdr      →   AtoiainSre +Rsuc Sre
                    uhrzto evr  eore evr


  Authorization Server와 Resource Server는 분리 가능
OAuth Service Providers




 KTH 개발자 블로그(http://dev.kthcorp.com/2012/12/12/oauth-2-0-open-api-auth/)
Useful Tools
 API console (https://code.google.com/apis/console/?pli=1#project:474377512137)

 OAuth 2.0 Playground (https://developers.google.com/oauthplayground/)

 APIs Explorer (https://developers.google.com/apis-explorer/#s/)

 Ajax Code Playground (https://code.google.com/apis/ajax/playground/)

 Authorized Access to your Google Account (https://accounts.google.com/b/0/IssuedAuthSubTokens)
Keys, access, security, and identity
The APIs represented in the Google APIs Console require that requests include a
unique project identifier. This enables the Console to tie a request to a specific project
in order to monitor traffic, enforce quotas, and handle billing. Google supports two
separate mechanisms to create a unique project identifier: OAuth 2.0 client IDs and API
keys.

   OAuth 2.0 client ID
   API key
OAuth 2.0 client ID
client ID를 만들 수 있는 종류와 Google이 지원하는 OAuth 2.0 시나리오

  Web application: Login, Web Server Applications, Client-side Applications
  Service account: Service Accounts
  Installed application: Installed Applications, Devices
API key
  모든 API 호출 시, 파라미터로 key={API_key}를 붙여준다.
  유저의 동의를 받지 않기 때문에 계정 정보에 접근하지는 못 한다.
  인가(authorization)을 위해 사용되는 것은 아니다.
필요 패키지들
OAuth 2.0 패키지

 $g gtcd.ogecmpgat2
   o e oegol.o//ouh


Google APIs Client Library for Go

 $g gtcd.ogecmpgol-p-ocin
   o e oegol.o//ogeaig-let


다른 언어용 라이브러리들은 여기(https://developers.google.com/discovery/libraries) 참고
Thank you
Jongmin Kim
GDG Korea Golang
(http://j.mp/Jongmin)

More Related Content

Viewers also liked

10 reasons to be excited about go
10 reasons to be excited about go10 reasons to be excited about go
10 reasons to be excited about goDvir Volk
 
Google Go! language
Google Go! languageGoogle Go! language
Google Go! languageAndré Mayer
 
협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0Sangcheol Hwang
 
Introduction to go language programming
Introduction to go language programmingIntroduction to go language programming
Introduction to go language programmingMahmoud Masih Tehrani
 
Agile 방법론
Agile 방법론Agile 방법론
Agile 방법론Astin Choi
 
Agile - SCRUM을 통한 개발관리
Agile - SCRUM을 통한 개발관리Agile - SCRUM을 통한 개발관리
Agile - SCRUM을 통한 개발관리SangJin Kang
 
애자일 도입과 사례 공유
애자일 도입과 사례 공유애자일 도입과 사례 공유
애자일 도입과 사례 공유agilekorea
 
스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요Insub Lee
 
Go Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang wayGo Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang wayIndicThreads
 
Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Ganesh Samarthyam
 
Introduction to Go programming
Introduction to Go programmingIntroduction to Go programming
Introduction to Go programmingExotel
 

Viewers also liked (15)

10 reasons to be excited about go
10 reasons to be excited about go10 reasons to be excited about go
10 reasons to be excited about go
 
Golang
GolangGolang
Golang
 
Google Go! language
Google Go! languageGoogle Go! language
Google Go! language
 
협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0협업도구 및 주요 Agile practices 적용사례 v1.0
협업도구 및 주요 Agile practices 적용사례 v1.0
 
Introduction to go language programming
Introduction to go language programmingIntroduction to go language programming
Introduction to go language programming
 
Golang
GolangGolang
Golang
 
Agile 방법론
Agile 방법론Agile 방법론
Agile 방법론
 
Agile - SCRUM을 통한 개발관리
Agile - SCRUM을 통한 개발관리Agile - SCRUM을 통한 개발관리
Agile - SCRUM을 통한 개발관리
 
애자일 도입과 사례 공유
애자일 도입과 사례 공유애자일 도입과 사례 공유
애자일 도입과 사례 공유
 
스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요스크럼, 이걸 왜 하나요
스크럼, 이걸 왜 하나요
 
애자일의 모든것
애자일의 모든것애자일의 모든것
애자일의 모든것
 
Go Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang wayGo Programming Language - Learning The Go Lang way
Go Programming Language - Learning The Go Lang way
 
About Go
About GoAbout Go
About Go
 
Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction Google's Go Programming Language - Introduction
Google's Go Programming Language - Introduction
 
Introduction to Go programming
Introduction to Go programmingIntroduction to Go programming
Introduction to Go programming
 

Similar to Using google api in go

안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API 안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API Gosu Ok
 
GDG Incheon Devfest 2016 - Google API로 만드는 더욱 더 풍부한 백오피스
GDG Incheon Devfest 2016 - Google API로 만드는 더욱 더 풍부한 백오피스 GDG Incheon Devfest 2016 - Google API로 만드는 더욱 더 풍부한 백오피스
GDG Incheon Devfest 2016 - Google API로 만드는 더욱 더 풍부한 백오피스 MooYeol Lee
 
AManaging Kong API Gateway with Terraform
AManaging Kong API Gateway with TerraformAManaging Kong API Gateway with Terraform
AManaging Kong API Gateway with TerraformByungjin Park
 
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현Clova Platform
 
OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자Minwoo Park
 
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자KTH, 케이티하이텔
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업NAVER D2
 
Clova extension에서 OAuth 계정 연동 구현
Clova extension에서 OAuth 계정 연동 구현Clova extension에서 OAuth 계정 연동 구현
Clova extension에서 OAuth 계정 연동 구현Gosu Ok
 
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Web Services Korea
 
REST API Development with Spring
REST API Development with SpringREST API Development with Spring
REST API Development with SpringKeesun Baik
 
20180124 naver labs aws network and security
20180124 naver labs aws network and security20180124 naver labs aws network and security
20180124 naver labs aws network and securityJongwon Han
 
Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)창언 정
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계Jinho Yoo
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?Ian Choi
 
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처dgmit2009
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기GunHee Lee
 
Open api개발을 위한 자료1
Open api개발을 위한 자료1Open api개발을 위한 자료1
Open api개발을 위한 자료1도성 김
 
AWS 기반 블록체인 (1부) - 블록체인 환경 구성하기 (박혜영 & 유다니엘, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
AWS 기반 블록체인 (1부) - 블록체인 환경 구성하기 (박혜영 & 유다니엘, AWS 솔루션즈 아키텍트) :: AWS DevDay2018AWS 기반 블록체인 (1부) - 블록체인 환경 구성하기 (박혜영 & 유다니엘, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
AWS 기반 블록체인 (1부) - 블록체인 환경 구성하기 (박혜영 & 유다니엘, AWS 솔루션즈 아키텍트) :: AWS DevDay2018Amazon Web Services Korea
 

Similar to Using google api in go (20)

안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API 안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
안드로이드 OAuth 1.0a, 2.0 구현 - Naver, Google API
 
GDG Incheon Devfest 2016 - Google API로 만드는 더욱 더 풍부한 백오피스
GDG Incheon Devfest 2016 - Google API로 만드는 더욱 더 풍부한 백오피스 GDG Incheon Devfest 2016 - Google API로 만드는 더욱 더 풍부한 백오피스
GDG Incheon Devfest 2016 - Google API로 만드는 더욱 더 풍부한 백오피스
 
AManaging Kong API Gateway with Terraform
AManaging Kong API Gateway with TerraformAManaging Kong API Gateway with Terraform
AManaging Kong API Gateway with Terraform
 
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현
Clova Tech Summit 세션3 :Clova extension에서 OAuth 계정 연동 구현
 
OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자OAuth2 - API 인증을 위한 만능도구상자
OAuth2 - API 인증을 위한 만능도구상자
 
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
[H3 2012] OAuth2 - API 인증을위한 만능 도구상자
 
20150109 - AWS BlackBelt - IAM (Korean)
20150109 - AWS BlackBelt - IAM (Korean)20150109 - AWS BlackBelt - IAM (Korean)
20150109 - AWS BlackBelt - IAM (Korean)
 
F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업F3 네이버오픈api만드는매쉬업
F3 네이버오픈api만드는매쉬업
 
Clova extension에서 OAuth 계정 연동 구현
Clova extension에서 OAuth 계정 연동 구현Clova extension에서 OAuth 계정 연동 구현
Clova extension에서 OAuth 계정 연동 구현
 
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬) Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
Amazon Elastcsearch Service 소개 및 활용 방법 (윤석찬)
 
REST API Development with Spring
REST API Development with SpringREST API Development with Spring
REST API Development with Spring
 
Citizen 개발기
Citizen 개발기Citizen 개발기
Citizen 개발기
 
20180124 naver labs aws network and security
20180124 naver labs aws network and security20180124 naver labs aws network and security
20180124 naver labs aws network and security
 
Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)Data discovery & metadata management (amundsen installation)
Data discovery & metadata management (amundsen installation)
 
RESTful API 설계
RESTful API 설계RESTful API 설계
RESTful API 설계
 
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
명령 프롬프트, Azure CLI 2.0은 과연 코딩일까?
 
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
제 4회 DGMIT R&D 컨퍼런스 : REST API - 리소스 지향적 아키텍처
 
Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기Open source APM Scouter로 모니터링 잘 하기
Open source APM Scouter로 모니터링 잘 하기
 
Open api개발을 위한 자료1
Open api개발을 위한 자료1Open api개발을 위한 자료1
Open api개발을 위한 자료1
 
AWS 기반 블록체인 (1부) - 블록체인 환경 구성하기 (박혜영 & 유다니엘, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
AWS 기반 블록체인 (1부) - 블록체인 환경 구성하기 (박혜영 & 유다니엘, AWS 솔루션즈 아키텍트) :: AWS DevDay2018AWS 기반 블록체인 (1부) - 블록체인 환경 구성하기 (박혜영 & 유다니엘, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
AWS 기반 블록체인 (1부) - 블록체인 환경 구성하기 (박혜영 & 유다니엘, AWS 솔루션즈 아키텍트) :: AWS DevDay2018
 

Using google api in go

  • 1. Using Google API in Go Apr 20, 2013 Jongmin Kim GDG Korea Golang
  • 2. 차례 OAuth API console, API explorer 등의 도구들 Keys, access, security, and identity Google API를 사용하기 위한 패키지들 Web applications 인증 데모 Service accounts 인증 데모 Google APIs Directory Service Google Auth Proxy by Bitly
  • 3. OAuth 1.0a Atoiain Ouhram"tp/aigol.o/, uhrzto: At el=ht:/p.ogecm" ouhcnue_e=08b98jh2" at_osmrky"65d14fq2, ouhtkn"d8jd3kr7, at_oe=a10j73lu" ouhsgauemto=HA-H1, at_intr_ehd"MCSA" ouhsgaue"OI925FDivbSK2P%D, at_intr=wJOAWmwgDZTM%FY3" ouhtmsap"3110" at_ietm=17320, ouhnne"521e81dd52c1816, at_oc=476646666746667" ouhvrin"." at_eso=10 HMAC을 이용한 암호화 인증 방식만 제공 매번 signature를 생성해야 함 curl 등으로 테스트해보기 어려움 기본적으로 3-legged 모델
  • 4. OAuth 2.0 3-legged 뿐만 아니라 2-legged 모델도 지원 아직 draft 버전 31. Google은 22 구현. Facebook은 12 구현 Client(1.0a에서 Consumer)는 Public Client와 Confidential Client로 크게 나뉨 명칭이 아래처럼 바뀜 10 .a 20 . Ue sr → Rsuc Onr eore we Cnue osmr → Cin let SriePoie evc rvdr → AtoiainSre +Rsuc Sre uhrzto evr eore evr Authorization Server와 Resource Server는 분리 가능
  • 5. OAuth Service Providers KTH 개발자 블로그(http://dev.kthcorp.com/2012/12/12/oauth-2-0-open-api-auth/)
  • 6. Useful Tools API console (https://code.google.com/apis/console/?pli=1#project:474377512137) OAuth 2.0 Playground (https://developers.google.com/oauthplayground/) APIs Explorer (https://developers.google.com/apis-explorer/#s/) Ajax Code Playground (https://code.google.com/apis/ajax/playground/) Authorized Access to your Google Account (https://accounts.google.com/b/0/IssuedAuthSubTokens)
  • 7. Keys, access, security, and identity The APIs represented in the Google APIs Console require that requests include a unique project identifier. This enables the Console to tie a request to a specific project in order to monitor traffic, enforce quotas, and handle billing. Google supports two separate mechanisms to create a unique project identifier: OAuth 2.0 client IDs and API keys. OAuth 2.0 client ID API key
  • 8. OAuth 2.0 client ID client ID를 만들 수 있는 종류와 Google이 지원하는 OAuth 2.0 시나리오 Web application: Login, Web Server Applications, Client-side Applications Service account: Service Accounts Installed application: Installed Applications, Devices
  • 9. API key 모든 API 호출 시, 파라미터로 key={API_key}를 붙여준다. 유저의 동의를 받지 않기 때문에 계정 정보에 접근하지는 못 한다. 인가(authorization)을 위해 사용되는 것은 아니다.
  • 10. 필요 패키지들 OAuth 2.0 패키지 $g gtcd.ogecmpgat2 o e oegol.o//ouh Google APIs Client Library for Go $g gtcd.ogecmpgol-p-ocin o e oegol.o//ogeaig-let 다른 언어용 라이브러리들은 여기(https://developers.google.com/discovery/libraries) 참고
  • 11. Thank you Jongmin Kim GDG Korea Golang (http://j.mp/Jongmin)