본문 바로가기

컴퓨터/언어,프로그래밍

MetaWeblog API 사용하기

MetaWeblog API 사용하기

우리는 보통 블로그를 작성할 때 블로그에 접속하고 로그인 한 후에 글을 작성합니다.

하지만 다른 프로그램에서 작성한 글을 블로그에 옮겨 적고 싶은 경우에는 어떻게 해야 할까요?
보통 우리가 늘 사용했던 방식은 Copy & Paste입니다. Copy & Paste로 옮긴 글들은 포맷이 맞지않아 삐뚤빼뚤하게 보이기도 하니 그리 좋은 방법은 아니었죠. 이러한 문제로 고민을 하던 많은 사람들이 있었구요, 본인이 작성한 글을 자동으로 블로그로 옮기고 싶어하는 사람들이 점점 늘어갔습니다. 이에 몇가지 방법들이 생기다가 표준화 된것이 바로 MetaWebLogApi입니다.

MetaWebLogApi는 API, 즉 규칙입니다.
국내 유명 블로그 사이트인 이글루스, 티스토리는 MetaWebLogApi를 따르고 있습니다.
그래서 미투데이스프링노트, 마이투두같은 사이트에서는 그곳에서 발생한 글들을 이글루스나 티스토리로 아주 쉽게 이동시켜 준답니다.

그러면 이번에는 MetaWebLogApi의 규칙은 어떤것들이 있는지 알아볼까요?
(아, 한가지 MetaWebLogApi는 XML-RPC라는 프로토콜을 사용합니다. 이곳에서는 XML-RPC는 설명하지 않겠습니다. 관심있으신 분은 꼭 찾아보시기를..)

1. 블로그 포스팅하기

metaWeblog.newPost (blogid, username, password, struct, publish) returns string

metaWeblog는 XML-RPC규칙에 의해 생성된 객체 입니다. 만약 파이썬이라면 다음과 같이 만들어 집니다.

metaWeblog=xmlrpclib.Server("http://pahkey.tistory.com/api").metaWeblog # 티스토리인 경우

입력값으로 사용하는 것들은 총 5가지군요.

  • blogid : 블로그 아이디 (티스토리인 경우, 관리자 페이지에서 확인할 수 있습니다. 이글루스는 이 값을 사용하지 않네요)
  • username : 사용자 아이디 (블로그 사이트 로그인 아이디입니다)
  • password : 사용자 패스워드 (티스토리인 경우 블로그 사이트 로그인 패스워드, 이글루스는 관리자 페이지에서 확인 할 수 있습니다)
  • struct : 포스팅할 내용을 담고 있는 변수(제목, 내용등..)
  • publish : 포스팅한 내용을 공개할 것인지, 비공개로 할 것인지

struct에 올 수 있는 항목으로는 다음과 같은 것이 있습니다.

  • category : 블로그에서 사용하는 카테고리명
  • description : 포스팅 글 내용
  • title : 포스팅 글 제목

(블로그 업체마다 이 struct는 약간씩 다르군요. 티스토리의 경우 mt_keywords(태그명)를 사용할 수 있습니다.)

파이썬인 경우 struct는 아래와 같이 딕셔너리로 구성하면 됩니다.

datastruct={'category': '', 'description': '내용입니다',
    'title':'제목입니다.'}

출력값으로는 성공인 경우 postid(포스팅한 글의 id)를 받고 에러인 경우 에러내용을 받습니다.

2. 블로그 수정하기

metaWeblog.editPost (postid, username, password, struct, publish) returns true

입력값으로 사용하는 것들은 총 5가지입니다.

  • postid - 포스팅 성공 시 리턴받은 id값
  • 나머지 4개는 상동

위와 동일하나 차이점은 첫번째 파라미터 값으로 포스팅 성공시 리턴받은 postid값을 송신해야 한다는 점입니다.
응답으로는 블로그 수정이 성공했는지 실패했는지를 나타내는 boolean값을 받습니다.

3. 블로그 읽기

metaWeblog.getPost (postid, username, password) returns struct

입력값으로 사용하는 것들은 총 3가지 입니다.

  • postid - 포스팅 성공 시 리턴받은 id값
  • 나머지 2개는 상동

응답으로는 struct를 받습니다.

  • category : 블로그에서 사용하는 카테고리명
  • description : 포스팅 글 내용
  • title : 포스팅 글 제목

이상과 같이 MetaWebLogApi에 대해서 간단하게 알아보았습니다. 더 자세한 것은 다음의 URL을 확인하세요.

아래는 파이썬으로 MetaWebLog API를 테스트한 소스입니다.

# -*- coding: utf-8 -*-
import xmlrpclib

# tistory
tistory=xmlrpclib.Server("http://pahkey.tistory.com/api")
datastruct={'category': '', 'description': "내용입니다.",
    'title':'제목입니다.', "mt_keywords":"mytodo,마이투두"}
no=tistory.metaWeblog.newPost("blogid", "username",
    "passwd", datastruct, True)
r = tistory.metaWeblog.getPost(no, "username", "passwd")

print r

# egloos
egloos=xmlrpclib.Server("https://rpc.egloos.com/rpc1")
datastruct={'category': '', 'description': "내용입니다.",
    'title':'제목입니다.'}
no=egloos.metaWeblog.newPost("", "username", "passwd", datastruct, True)
r = egloos.metaWeblog.getPost(no, "username", "passwd")

print r

MetaWebLogApi를 활용하면 많은 아이디어들이 쏟아져 나올 것 같습니다. MetaWebLogApi와 함께 즐거운 블로그 생활들 하세요.


출처 : http://myinformation.tistory.com/111

제주삼다수, 2L,... 오뚜기 진라면 매운... 상하목장 유기농 흰... 남양 프렌치카페 카... 고려인삼유통 홍삼 ... 종근당건강 오메가3... 요이치 카링 유무선...