1

주제: blog API를 테스트해 보고 있습니다.. 근데.

간단하게 ruby로 제 블로그의 글을 수정할 수 있는 것을 테스트해 보고 있는데요,
새 글을 post하는 경우에는 잘 됩니다.
그런데, 수정이나 가져오기(getPost)는 안되는군요.

require 'xmlrpc/client'
require 'pp'
server = XMLRPC::Client.new2 'http://mo**s**t.tistory.com/api'
content = {
    :mt_keywords => 'good,test'
}
result = server.call('metaWeblog.editPost', 270, 'm***@**ail.com', '****', content, false)
pp result

코드는 위와 같은데요.(죄송 ** 한거 많습니다)
아래와 같은 에러가 납니다.(인증부분은 넘어갔습니다)

D:\temp\blog_hack>ruby post_edit_test.rb
c:/ruby/lib/ruby/1.8/xmlrpc/client.rb:414:in `call': Error: invalid postid, mayb
e the blog tools doesn't work correctly (XMLRPC::FaultException)
        from post_edit_test.rb:10

혹시 아시는분...(아 그리고 270번 글은 제대로 존재합니다)
도움좀 주세요 smile

2

답글: blog API를 테스트해 보고 있습니다.. 근데.

postid가 Tatter의 ID와 일치하지는 않습니다.

생성시 혹은 리스트 받아와서 작업하셔야 합니다.

또한 ID는 스트링 타입이어야 합니다.

"{$BlogID}-{$PostId}" 형태로 기억이 되는군요. (가물가물 @.@; )

3

답글: blog API를 테스트해 보고 있습니다.. 근데.

아아 그거로구나... 그러니까 블로그아이디-글번호 이런 형식이었군요.
감사합니다.!!

4

답글: blog API를 테스트해 보고 있습니다.. 근데.

ezhong 작성:

아아 그거로구나... 그러니까 블로그아이디-글번호 이런 형식이었군요.
감사합니다.!!

저 형식은 그날 기분따라 변경 될 수 있으므로;;; -ㅅ-

글의 ID는 글만 찾을 수 있으면 되기 때문에 어떠한 가정도 하지 마시기 바랍니다. 가령 일부 BlogAPI를 지원하는 툴들은 숫자로만 되어 있을거다라거나, 글 주소와의 연관성이 있을꺼다라고 가정하는데 스펙을 보면 전혀 그런거 없습니다.

http://www.sixapart.com/developers/xmlr … tpost.html

오히려 너무 험블하죠.

5

답글: blog API를 테스트해 보고 있습니다.. 근데.

어이쿠 그래도 전 잘 안되네요...

require 'xmlrpc/client'
require 'pp'
server = XMLRPC::Client.new2 'http://monoscri**.tistory.com/api'
result = server.call('metaWeblog.getPost', '15***-270', 'monoscri**^@^gmail.com', '******')
pp result

위 코드를 실행하면 에러가 납니다.

D:\temp\blog_hack>ruby post_edit_test.rb
c:/ruby/lib/ruby/1.8/xmlrpc/parser.rb:95:in `utc': can't convert Array into Inte
ger (TypeError)
        from c:/ruby/lib/ruby/1.8/xmlrpc/parser.rb:95:in `dateTime'
        from c:/ruby/lib/ruby/1.8/xmlrpc/parser.rb:536:in `tag_end'
        from c:/ruby/lib/ruby/1.8/rexml/parsers/streamparser.rb:26:in `parse'
        from c:/ruby/lib/ruby/1.8/rexml/document.rb:185:in `parse_stream'
        from c:/ruby/lib/ruby/1.8/xmlrpc/parser.rb:717:in `parse'
        from c:/ruby/lib/ruby/1.8/xmlrpc/parser.rb:460:in `parseMethodResponse'
        from c:/ruby/lib/ruby/1.8/xmlrpc/client.rb:421:in `call2'
        from c:/ruby/lib/ruby/1.8/xmlrpc/client.rb:410:in `call'
        from post_edit_test.rb:11

아무래도 고급식물관리사님께서 답변주신대로 하니, 글을 가져오기는 하는 것 같은데요,
이것은 갖고 온 값을 제대로 parsing 하지 못하는게 아닌가 의심됩니다.

ezhong (2007-06-05 13:33:02)에 의해 마지막으로 수정

6

답글: blog API를 테스트해 보고 있습니다.. 근데.

루비의 XMLRPC 라이브러리 문제인것 같은데... 정확히 루비 라이브러리 버전을 알 수 없으니 모르겠습니다만... ISO8601 Standard를 모두 지원하지 못해서 몇번의 패치도 있었던 것 같은데 아무튼.

최신버전으로 업해보거나 해당 위치에서 (xmlrpc/parser.rb) 디버깅을 해 보는 수밖에는 없을 것 같군요.

태터나 티스토리 범위도 벗어 났고 지금 루비를 디버깅할 수 있는 환경이 없어서 더 이상은;;;

PS.
루비는 아직 갈길이 먼듯 -ㅅ-.
뭐 자바쪽 xmlrpc 라이브러리(아파치)도 괴상한 짓을 해서 한때 쑈한적이 있습니다만.

7

답글: blog API를 테스트해 보고 있습니다.. 근데.

음... 역시 그렇겠죠?
이거 어떻게 ruby 커뮤니티에 버그 리포팅을 해야겠군요.
감사합니다.
어 닉을 바꾸셨네요~!

8

답글: blog API를 테스트해 보고 있습니다.. 근데.

분재가는 닉이 아니라 회원 등급입니다. 이번에 렙업(?)했군요.

닉은 위에 -ㅅ-