JAVA 2010. 7. 16. 14:23

실질적으로 테스트 해보지는 않았습니다.
훗날 사용할거 같아서...
-----------------------------------------------------------------------------------------

Google Blogger API는 ATOM 이라고 하는 표준(아직도 진행중) 을 이용하여 인증, 조회, 수정, 생성을 할 수 있도록 방법을 제공한다. 하지만 처음 API를 사용하여 Google Blogger를 제어하는 사용자에게는 예제의 부적절함 혹은 부족으로 상당한 시행착오를 겪는다 물론 그렇지 않은 사람들도 있다.

 

혹시 다른 분들도 시행착오를 겪을 수 있으므로 조금이나 도움이 되었으면 좋겠다.

Google Blogger API :  http://code.blogger.com/archives/atom-docs.html
개발환경 : Jdk1.5와 HttpClient3.0

 

기본적으로 읽기/쓰기 등을 하기 위해서는 먼저 인증절차를 거쳐야 한다.
이 인증은 모든 atom request 에 적용되어야 한다.

Google Blogger는 모든 ATOM reqeust 를 HTTP Basic Authentication을 SSL 방식으로 인증한다.
Google Blogger API 의 자료를 보면 아래와 같이 사용자의 블로그 리스트를 얻어 오는데

 

Get a List of a User's Blogs:


GET /atom HTTP/1.1

Host: www.blogger.com

Authorization : BASIC c3RldmVqOm5vdGFyZWFscGFzc3dvcmQ=

이 때 Authorization: BASIC c3RldmVqOm5vdGFyZWFscGFzc3dvcmQ= 이 부분이 사용자 아이디와 패스워드로 생성된 credential이다. 이 Credential을 이용하여 google blogger server와의 인증을 하게 된다.
Http Request를 위와 같은 형태로 생성하여 보내줄 수만 있으면 되는 것이다.
그럼 위의 내용을 HttpClient를 이용하여 구현하면 아래와 같이 mehtod를 구현할 수 있다. 

 

public String getAuthByAtom() {  
  HttpClient client = new HttpClient();  
  // userid, passwd는 실제로 존재하는 것을 사용한다.               
  // 빨간글자의 코드가 시행착오를 겪었던 부분임.  
  client.getState().setCredentials(              
    new AuthScope("www.blogger.com", 443, "Blogger"),         
    new UsernamePasswordCredentials("userid", "passwd")         
  );  
 
  // user의 블로그 리스트를 조회하는 url 임  
  GetMethod get = new GetMethod("https://www.blogger.com/atom");        
  get.setDoAuthentication( true );        
  try {            
    int status = client.executeMethod(get);            
    System.out.println(status + "\n" + get.getResponseBodyAsString());        
  } catch (Exception e) {            
    System.out.println(e.toString());        
  } finally {            
    get.releaseConnection();        
  }                
 
  return get.getResponseBodyAsString() 
}

 

위의 코드는 결과로 아래와 같은 XML을 return 한다.

특정 user가  가지고 있는 블로그의 리스트이다.


<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<feed xmlns="
http://purl.org/atom/ns#">
<userid xmlns="
http://www.blogger.com/atom/ns#">27275760</userid>
<link href="
https://www.blogger.com/atom/30952142" rel="service.post" title="Open everything" type="application/atom+xml"/>
<link href="
https://www.blogger.com/atom/30952142" rel="service.feed" title="Open everything" type="application/atom+xml"/>
<link href="
http://kimkun.blogspot.com" rel="alternate" title="Open everything" type="text/html"/>
</feed>


이 api를 사용하는 개발자들은 return 되어 오는 xml 데이타를 적절히 파싱하여 사용하면 될 것이다.
다른 Google Blogger API도 위와 같은 원리로 http basic authentication을 이용하여 인증절차를 거치고특정 url을 호출하여 원하는 기능을 수행하도록 한다.

 

인증은 위의 코드로 수행을 하고 ROME(http://wiki.java.net/bin/view/Javawsxml/Rome)  을 이용하여 xml format으로 생성하거나 parsing을 하면 xml 관련된 작업을 수월하게 할 수 있을 것이다.

[출처] Google Blogger API 사용|작성자 김군

posted by 나는너의힘
: