ruby hack for egloos API
이글루스 블로깅을 시작하기 위해 기존 블로그의 글들을  이글루스 API 를 이용해서 가져오기로 했다.
그런데  blogger API 샘플 코드로  시험을 해보니 다음과 같은 에러가 자꾸  발생 한다.

/usr/lib/ruby/1.8/xmlrpc/client.rb:554:in `do_rpc': Wrong content-type (RuntimeError)
        from /usr/lib/ruby/1.8/xmlrpc/client.rb:420:in `call2'
        from /usr/lib/ruby/1.8/xmlrpc/client.rb:410:in `call'
        from /usr/lib/ruby/1.8/xmlrpc/client.rb:608:in `method_missing'


/usr/lib/ruby/1.8/xmlrpc/client.rb:554 를 열어보니 다음과 같은 코드가 있다.

      if ct != "text/xml"
        if ct == "text/html"
          raise "Wrong content-type: #{data}"
        else
          raise "Wrong content-type"
        end
      end


여기서  첫번재 if 문에 걸려서 자꾸   raise 가 되는 것이 문제인 듯 하다.
그래서 ct 를 출력해보니 역시나 egloos 에서 리턴해주는 값이 'text/xml' 이 아니고
'application/xml' 인 것이다.

그래서 첫 줄을 다음과 같이 수정했다.(루비 라이브러리를 직접 고치는 것이 좀 그렇지만..
python의 xmlrpc 라이브러리는 이렇게 엄격하지 않고 잘되고 있으므로..그냥 고쳤다.)

      if ct != "text/xml" and ct != 'application/xml'
이제 잘된다. 만세^^

이번에는 좀 더 멋진 API  인 MetaWeblog API  샘플 코드를 사용해봤다.
역시 잘된다. 요놈을 사용하면 RSS2.0  elements 를 hash 형태로 입력할 수 있기 때문에
글의 제목, 내용, 날짜, 카테고리까지 지정할 수 있겠다.

앗. 그런데 날짜는 왠 일인지 무시되어버리고 실제 rpc 호출시간으로 되어 버린다.
Rss2.0  에서 pubDate 포맷과 동일하도록 Time#httpdate  를 사용해도 역시 되지 않는다.

음. 고민 중.




by ikspres | 2006/06/08 00:01 | ruby | 트랙백 | 덧글(1)
트랙백 주소 : http://ikspres.egloos.com/tb/71285
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by ikspres at 2006/06/09 21:23
이 문제를 이글루스에 문의했더니, 현재 pubData는 처리를 구현하지 않았는데 조금 시간을 걸리겠지만 구현해주겠다는 답변을 해왔음.

:         :

:

비공개 덧글

< 이전페이지 다음페이지 >