통계 위젯 (화이트)

2177
408
2197516

저작권

모든 내용은 허락없이 상업적으로 사용하실 수 없습니다. - 오광섭 -

클릭몬 (와이드)





이글루스 API 사용해 프로그래밍 하기.. ▣ 컴터야그 ▣

이글루스 API가 공개된지 꽤 되었는데, 이제서야 관심을 가지고 한번 만들어봤다.. 이글루스에서 샘플을 공개해 놓고 있지 않아 좀 삽질을 하고 운영팀에 문의를 하는 등 우여곡절이 좀 있었다.. 테스트는 Visual C++을 사용하여 점검을 해봤다.. 결론은 당연히 잘 된다..
위의 그림은 준비된 XML 데이터를 이글루스 API를 사용하여 서버에 보내고 등록에 성공한 모습과 이글루스에서 보내준 리턴값을 보여주는 모습이다.. 넘어온 숫자가 새로 등록된 글의 등록 고유번호인 것으로 보인다..

주의할 점은 이글루스 서버에 보내는 데이터는 모두 UTF-8으로 유니코드 인코딩이 되어있어야 한다.. 아스키 형태로 보내면 스펙에 아무리 잘 맞춰서 보내도 글이 등록되지 않는다..

이제 좀 더 코딩을 해서 테스트를 해볼 것은 첨부파일을 여러개 같이 올리는 방법, 글 리스트를 가여오고 선택한 글을 읽어와서 수정하여 다시 올리는 방법을 테스트하면 지원하는 API들은 다 테스트를 해보는 것 같다.. 아직 글을 삭제하는 API는 존재하지 않는다.. 따라서 완벽하게 글을 관리할 수 있는 에이전트 프로그램을 만드는 것은 현재로서는 불가능하다..

글 입력창을 하나 만들고, 네이버와 다음 검색 결과를 선택하면 글 입력창에 반영시키고.. 뭐 이런 식으로 하면 매쉬업 경진대회에 낼 수 있는 프로그램 하나 나올 것도 같은데.. 마감 시간이 촉박해서 시간을 낼 수 있을런지.. 일단, 이런거 연연치 말고 틈 날때 마다 조금씩 진행을..

이글루스가 제공하는 API는 blogger API (http://www.blogger.com/developers/api/1_docs/) 와 MetaWeblog API ( http://www.xmlrpc.com/metaWeblogApi) 이다..



newPost Request 보내기

- blogger API를 사용할 경우
 <?xml version="1.0"?>
 <methodCall>
  <methodName>blogger.newPost</methodName>
  <params>
   <param><value><string></string></value></param> 
   <param><value><string></string></value></param>
   <param><value><string>egloos user ID</string></value></param>
   <param><value><string>API KEY</string></value></param> 
   <param><value><string>글의 내용</string></value></param>
   <param><value><boolean>true</boolean></value></param> 
  </params>
 </methodCall> 
 첫번째, 두번째 파라미터 : 현재 사용하지 않습니다.
 세번째 파라미터 : 이글루 아이디
 네번째 파라미터 : API KEY (이글루관리 -> 부가기능 -> 이글루스API에서 확인할 수 있습니다.)
 다섯번째 파라미터 : 글의 내용
 여섯번째 파라미터 : 공개/비공개 설정


- MetaWeblog API를 사용할 경우
 <?xml version="1.0"?>
 <methodCall>
  <methodName>metaWeblog.newPost</methodName>
  <params>
   <param><value><string></string></value></param> 
   <param><value><string>egloos user ID</string></value></param>
   <param><value><string>API KEY</string></value></param>
   <param> 
    <struct
     <member> 
      <name>categories</name> 
      <value> 
       <array><data><value>카테고리 이름</value></data></array> 
      </value> 
     </member> 
     <member> 
      <name>description</name> 
      <value>내용</value>
     </member> 
     <member> 
      <name>title</name> 
      <value>제목</value> 
     </member> 
    </struct
   </param> 
   <param><value><boolean>true</boolean></value></param> 
  </params> 
 </methodCall>

 첫번째 파라미터 : 현재 사용하지 않습니다.
 두번째 파라미터 : 이글루 아이디
 세번째 파라미터 : API KEY (이글루관리 -> 부가기능 -> 이글루스API에서 확인할 수 있습니다.)
 네번째 파라미터 : 글의 struct (제목, 내용, 카테고리 이름을 넣습니다.)
 다섯번째 파라미터 : 공개/비공개 설정



metaWeblog.editPost (postid, username, password, struct, publish) returns true
metaWeblog.getPost (postid, username, password) returns struct
이 두 개는 지난번에 보내드린 metaWeblog.newPost를 참조하시면 됩니다. 
getPost에서 리턴값은 post sturct입니다. 

* post struct
dateCreated(dateTime) : 포스팅 날짜
description(string) : 글 내용
title(string) : 글 제목
categories(array of string) : 카테고리 배열 (아래 category struct 참조)
enclosure(struct Enclosure) : array(null) 
link(string) : 퍼머링크 
permalink(string) : 퍼머링크
postid (string) : 글 serial (http://madchick.egloos.com/1234567 에서 1234567을 말합니다.)
userid (string) : 닉네임

metaWeblog.getCategories (blogid, username, password) returns struct
request는 앞의 것과 같이 보내면 됩니다. 리턴값은 category struct입니다. 

* category struct
description(string) : 카테고리 이름
htmlUrl(string) : 카테고리 이름
rssUrl(string) : 카테고리 링크
title(string) : 카테고리 링크
categoryid(string) : 카테고리 ID

metaWeblog.getRecentPosts (blogid, username, password, numberOfPosts) returns array of structs
마지막 파라미터 numberOfPosts는 <param><value><int>10</int></value></param> 를 넣으면 됩니다. (numberOfPosts < 30 입니다.) 
리턴값은 post struct 의 배열입니다.

metaWeblog.newMediaObject (blogid, username, password, struct) returns struct
마지막 파라미터 struct는 media object의 struct입니다. 리턴값은 url이 포함된 struct입니다. 
newMediaObject를 사용해서 업로드한 이미지 파일은 리턴된 url을 가지고 직접 액세스합니다. 즉,  를 사용하지 않고 <img src="url" /> 포스트에 추가해서 사용하시면 됩니다. 이미지 파일 삭제 기능은 추가되어 있지 않고 삭제를 원하시면 webmaster 메일로 요청해 주셔야 합니다. 

* media object struct
name(string) : 파일명
type(string) : mime type (현재 이미지만 지원합니다.)
bits(base64) : 파일을 base64 인코딩

핑백

  • 미친병아리가 삐약삐약 : 퓨전, 컨버젼스, 매쉬업.. 2008-01-06 22:45:42 #

    ... 면 검색결과가 나온다는 것 보다는 네이버 검색 OpenAPI를 사용하여 실제로 동작하는 모습을 붙여보고, 결과물도 비슷하고 만들어 보는 것이 훨씬 실감나니까.. 이글루스 Open API, me2API (미투데이 접목하기 예1, 예2), 다음 오픈 API, 네이버 Open API 등 여러 업체들이 자사 서비스를 사용할 수 있는 다양한 기능들을 오픈AP ... more

덧글

  • 이카루스 2007/11/12 09:36 # 답글

    안녕하세요... ㅠㅠ
    이런말씀 드려도 될지 모르겠는데
    metaweblog에서 이미지와 링크는 어떤식으로 보내는지 알려주실 수 있으신지요..
    잘 안되서요.. ㅠㅠ
    부탁드립니다.
  • 미친병아리 2007/11/18 14:05 # 답글

    이카루스님 : 제가 사용했던 소스코드를 링크로 붙여두었습니다.. 참고하세요..
  • 베이스캠프 2012/10/10 22:26 # 삭제 답글

    안녕하세요..
    MetaWeblog 자료를 찾고 있습니다.
    웹이 익숙하지 않아서 C++ 코드에서 어떻게 MetaWeblogAPI를 연결해야 할지 막막하네요..
    실례가 되지 않는다면 VC++에서 테스트하신 소스코드를 좀 참고할 수 있을까요?
    감사합니다.
  • 미친병아리 2012/11/01 17:33 #

    분명 몇년전에 어느분이 요청하셔서 파일을 첨부해서 올려둔 것 같은데.. 사라졌네요.. 저도 백업 하드에서 찾아봐야 해서리.. 이메일 주소를 비밀댓글로 남겨주시면 메일로 보내드리겠습니다..
  • 2012/11/15 15:55 # 답글 비공개

    비공개 덧글입니다.
  • 미친병아리 2014/02/16 10:08 #

    죄송해요.. 테스트 코드를 찾을 수가 없네요..
    백업에서 빠졌나봐요..
  • 2013/12/13 16:54 # 삭제 답글 비공개

    비공개 덧글입니다.
  • 미친병아리 2014/02/16 10:08 #

    죄송해요.. 테스트 코드를 찾을 수가 없네요..
    백업에서 빠졌나봐요..
댓글 입력 영역