BLOG main image
분류 전체보기 (239)
Rails (65)
Ruby (34)
이야기 (40)
스토리큐 (61)
그 밖에.. (30)
C# (6)
드리밍 인 코드
The note of Legendre
작은아이의 생각
agiletalk's me2DAY
[rails] Growl4Rails
美소년 ㅇㅅㅇ씨의 一日
마사키군의 생각
ayukawa's me2DAY
작은아이의 생각
agiletalk's me2DAY
63,405 Visitors up to today!
Today 10 hit, Yesterday 22 hit

 SUBSCRIBE

2008/03/28 12:55

blog API

blogger

metaWeblog

ATOM, RSD, movable type 

 

metaWeblog

blogger의 단점을 보완하기 위해 Dave Winer 에 의해 2002년도에 만들어진 블로그를 다루기 위한 interface API.

 

XML-RPC API들

  1. metaWeblog.newPost (blogid, username, password, struct, publish)
  2. metaWeblog.editPost (postid, username, password, struct, publish)
  3. metaWeblog.getPost (postid, username, password) 
  4. metaWeblog.newMediaObject (blogid, username, password, struct)
  5. metaWeblog.getCategories (blogid, username, password)
  6. metaWeblog.getRecentPosts (blogid, username, password, numberOfPosts)

파라미터들에 대한 설명

  • username : 블로그의 admin id
  • password : 블로그의 admin password
  • struct : RSS 2.0 의 item과 같은 이름을 사용한다.
  • struct의 format은 블로그 마다 약간식 다를 수 있다. 예를 들어 티스토리는 tag 정보를 담고 있는 mt_keywords라는 항목이 있다.
  • publish: 공개된 상태로 만들까?
  • blogid : 블로그 아이디, 테터툴즈와 이글루스같이 blogid가 없는 경우에는 아무 값이나 채워서 보내면 된다.

 

티스토리에 이용하기

티스토리 블로그 관리자 페이지에서 'BlogAPI 세팅주소' 와 ' BlogAPI Blog ID'를 얻을 수 있다.

  • username 은 관리자로 로그인할 때 사용하는 이메일 주소
  • password 는 관리자로 로그인할 때 사용하는 비밀번호
  • blogid는 ' BlogAPI Blog ID'

다음은 categories를 가져오는 ruby code이다.

  1. require "xmlrpc/client"
  2. api_address = 'BlogAPI 세팅주소'
  3. server = XMLRPC::Client.new2(api_address)
  4. result = server.call('metaWeblog.getCategories', 'BlogAPI Blog ID', username, password)

result는 category정보에 대한 hash의 array다. 내가 필요로 하는 것은 category의 title이니 이것만 뽑아내자.

  1. result.map { |cat|  cat["title"] }

 

다음은 글을 쓰는 ruby code이다.

  1. server = XMLRPC::Client.new2(api_address)
    post = {
      "title" => "the first article through metaWeblog",
      "categories"=> ["metaWeblog"],
      "description" => "테스트 중입니다.",
      "mt_keywords" => "metaWeblog","test"
    }   
    server.call('metaWeblog.newPost',  'BlogAPI Blog ID', username, password, post, true)

post는 올리려고 하는 글에 대한 내용이다.

  • title : 제목
  • categories : 카테고리, array로 넣어야 한다. 왜지?
  • description : 본문
  • mt_keywords : ','로 분리되는 tag

가장 마지막의 true는 공개된 상태로 올리겠다는 뜻, 비공개로 올리고 싶으면 false로.

 

테터툴즈에서 이용하기

'BlogAPI Blog ID' 를 이용하지 않는다는 것마 빼면 티스토리와 완전히 동일하다.

blogid값은 아무 값이나 넣어줘도 된다.

getCategories 요청에 대해 응답이 항상 [].... 왜그러지? 나만 그런 건가..?

 

이글루스에서 이용하기

이글루스 블로그 관리페이지에서 ID, URL, API key를 얻을 수 있다.

ID는 username, API key는 password에 해당한다. blogid는 필요없으니 1로 보내자.

이글루스는 password 대신 API key를 사용자 인증에 이용한다. 그리고 인증 프로토콜로 https를 이용한다. 보안에 신경을 많이 쓴듯.

사용하는 방법은 티스토리와 같다. 다만,

post를 등록할때 tag를 입력할 수 없다. (그렇게 보인다.)

참조

http://kwon37xi.springnote.com/pages/871502

http://en.wikipedia.org/wiki/MetaWeblog

http://www.xmlrpc.com/metaWeblogApi

 

이 글은 스프링노트에서 작성되었습니다.