Programming/Open API2013. 8. 28. 11:02

 

 

저번 포스팅에서 Client ID 발급 절차에 대해 알아보았다.

+ 2013/07/31 - [Programming/Open API] - Google OAuth 2.0 for Android - Client ID 발급

 

이번 포스팅에서는 실제로 안드로이드 앱에서 구글 OAuth 인증을 하는 예제를 살펴보겠다.

 

 

1. Tasks API 서비스 사용 요청 - 이번 OAuth 인증 예제에서 Scope 로 사용

 

 

Tasks API 항목의 OFF 버튼을 클릭하여 사용 요청을 진행한다.

 

 

 

I agree to these terms. 를 체크하여 동의하고,

Accept 버튼을 클릭하여 서비스 사용 요청을 마친다.

 

 

 

Tasks API 항목이 ON 으로 변경 된 것을 확인할 수 있다.

 

 

 

지난 포스팅에서 발급 받았던 Client ID 와 함께

API key 를 확인할 수 있다.

 

 

2. Google API 라이브러리 다운로드 및 설치

 

(https://code.google.com/p/google-api-java-client/downloads/list)

 

 

이번 예제에서는 1.4.1-beta 버전을 사용하였다.

Deprecated 되었기 때문에 추후에는 변경하여 개발할 필요가 있다.

 

 

 

압축 파일을 다운로드 받는다.

 

 

 

압축을 해제하여

google-api-client-1.4.1-beta.jar 파일과

google-api-client-googleapis-1.4.1-beta.jar 파일을 복사한다.

 

 

 

dependencies 폴더에 있는

guava-r09.jar 파일과

jackson-core-asl-1.6.7.jar 파일도 복사한다.

 

 

 

안드로이드 앱 프로젝트를 개설하여 libs 폴더에 jar 파일들을 넣어준다.

 

 

3. Google OAuth 2.0 인증 진행 예제

 

 

간단하게 Button 과 WebView 를 배치했다.

WebView 는 인증 요청 화면을 호출할 때 보여야하므로 visibility 속성값을 invisible 로 설정한다.

 

 

 

인터넷 사용 퍼미션을 지정해준다.

 

 

 

이전에 발급 받았던 Client ID 와 API key 값을 지정해두고,

Tasks API 를 호출하기 위한 Scope 와 URL 값을 설정한다.

 

 

 

OAuth 인증을 위해서는 자바스크립트를 사용해야하므로 웹뷰에 자바스크립트 기능을 활성화 해준다.

버튼을 눌러 인증 요청 시 웹뷰를 Visible 시켜주고 인증 페이지를 호출한다.

 

 

 

인증 페이지가 띄워진다.

인증 페이지 호출 시 Log 를 확인해보았다.

 

 

 

사용자가 Email 과 Password 를 입력하여 로그인 하면,

이렇게 사용자 tasks 에 대해 이 앱에서 접근을 요청 하였다는 안내를 볼 수 있다.

인증 할 때의 Log 를 확인해보았다.

 

 

 

사용자가 Accept 버튼을 눌러 접근을 허용하면 접근코드를 반환 받을 수 있다.

 

 

 

사용자가 Cancel 버튼을 눌러 접근을 허용하지 않으면 에러코드를 반환 받는다.

 

 

이제 구글 OAuth 인증을 했으므로,

구글에서 제공하는 서비스 목록에서 접근하여 사용하고자하는 서비스를 선택하여 활용할 수 있다.

 

구글 Calendar API 와 이번 예제에서 요청했던 Tasks API 를 사용해보았는데

꽤 쓸만했고 별다른 어려움도 없었다.

 

Google OAuth 2.0 인증에 대해 조금이나마 도움이 되길 바란다.

 

 

+ 2013/07/31 - [Programming/Open API] - Google OAuth 2.0 for Android - Client ID 발급

 

 

 

'Programming > Open API' 카테고리의 다른 글

Google OAuth 2.0 for Android - Client ID 발급  (0) 2013.07.31
Google Geocoding API  (0) 2013.05.28
Posted by SiriusB