실질적으로 테스트 해보지는 않았습니다.
훗날 사용할거 같아서...
-----------------------------------------------------------------------------------------
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 사용|작성자 김군