C# & VB.NET2006. 9. 30. 18:32
아직 여기 Tistory는 API를 제공하지 않지만, 대부분의 블로그 서비스는 블로그 API를 제공한다. 이런 API를 써서 꼭 블로그에 접속하지 않고도 블로그의 포스트 리스트를 가져온다거나, 블로그를 작성하거나 할 수 있다. (이를테면 MS Word 2007에서는 Blogger, MSN Space 등의 블로그에 Post할 수 있는 메뉴를 제공한다) 이런 API 중에서 대표적인 것이 Blogger ATOM APIRFC MetaWebLog API이다.

Blogger Atom API에 대한 문서는 다음을 참조하면 된다 ->
http://code.blogger.com/archives/atom-docs.html

다음 샘플은 Blogger Atom API를 써서 자신의 Blogger Blog 목록을 가져오는 C# 샘플이다. 설명은 코드의 주석으로...^^;;


//WebClient 클래스는 간단하게 인터넷 익스플로러라고 생각하면 된다.

//즉, 프로그램 내부에서 인터넷 페이지를 열거나 데이터를 post/get 하는 등의 일을 할 수 있는 객체이다.
//Blogger ATOM API는 XML-RPC를 사용하기 때문에 이 객체를 사용해서 데이터를 가져오거나 쓸 수 있다.
System.Net.WebClient oClient = new System.Net.WebClient();

//Content-type은 반드시 application-xml로 설정해야 한다.
oClient.Headers.Add("Content-type", "application/xml");

//ATOM API는 HTTP SSL 기본 인증을 사용한다.
//기본 인증 token은 아이디:비밀번호를 Base64로 인코딩한 값이 사용된다.
//아래 코드 중 Base64Encode라는 함수는 내 이전 글(
http://kkongchi.net/1602055)을 참조한다
oClient.Headers.Add("Authorization", "BASIC " + this.Base64Encode("YourID:YourPassword", System.Text.Encoding.UTF8));

//자신의 블로그 리스트를 읽어와서 TextBox에 넣는다.
string s = oClient.DownloadString("http://www.blogger.com/atom/");
this.textBox2.Text = s;



이 코드를 통해서 얻어진 결과는 다음과 같다..(내 ID/PW로 쿼리한 결과)

<feed xmlns="http://purl.org/atom/ns#">
<userid title="kkongchi's Blog" xmlns="https://www.blogger.com/atom/23327098" type="application/atom+xml" rel="service.feed">
<link title="kkongchi's Blog" href="http://kkongchi.blogspot.com" type="text/html" rel="alternate">
<link title="kkongchi's GOOGLE Blog" href="https://www.blogger.com/atom/28487731" type="application/atom+xml" rel="service.post">
<link title="kkongchi's GOOGLE Blog" href="https://www.blogger.com/atom/28487731" type="application/atom+xml" rel="service.feed">
<link title="kkongchi's GOOGLE Blog" href="http://kkongchigle.blogspot.com" type="text/html" rel="alternate">
</feed>
Posted by kkongchi