이글루스 블로그 XML-RPC MetaWeblog API를 이용한 글쓰기 JAVA예제


현재 이글루스의 OAuth 인증이 먹통이라, XML-RPC로 테스트해봤다.


티스토리나 다음처럼 OAuth기반의 RESTful 방식의 API가 지원된다면, XML-RPC는 사실 쓸 이유가 없는 api다.


XML-RPC로 프로그램을 구현할 경우, 유저들의 ID/인증키를 입력하게 하는 방식은 여전히 보안에 취약하고 악용될 소지가 많다. 


1. 어쨌든... 블로그 관리 > 기본설정 > API Key 메뉴의 XML-RPC 정보를 클릭





2. API Key를 발급한다






3. Apache XML-RPC 라이브러리를 다운받고 classpath 설정


http://archive.apache.org/dist/ws/xmlrpc/binaries/apache-xmlrpc-3.1.3-bin.zip




4. JAVA 샘플



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
package com.xmlrpc.naver;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
 
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
 
 
public class XmlRpcEgloosBlog {
 
    static final String API_URL = "https://rpc.egloos.com/rpc1";
 
    static final String API_ID = "ID를 입력";
    static final String API_PASSWORD = "API Key를 입력";
    
 
    
 
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        
        try {
 
            XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
            config.setServerURL(new URL(API_URL));
            
            Map<StringString> contents = new HashMap<StringString>();
            contents.put("categories""테스트1"); // 카테고리 텍스트
            contents.put("title""여기에 제목을 쓰고"); // 제목
            contents.put("description""여기에 내용을 쓰세요."); // 내용
            contents.put("mt_keywords""태그1, 태그2, 태그3"); // 태크 콤마로 구분한다.
            
            List<Object> params = new ArrayList<Object>();
            
            // 블로그ID를 넣으라는데 아무거나 넣어도 들어간다.
            params.add(API_ID);  
            
            // API ID
            params.add(API_ID);
            
            // API 암호
            params.add(API_PASSWORD); 
            
            // 블로그 컨텐츠 
            params.add(contents);
            
            // 공개여부 true이면 공개, false면 비공개
            params.add(new Boolean(true)); 
            
            XmlRpcClient client = new XmlRpcClient();
            client.setConfig(config);
            
            String rsString = (String) client.execute("metaWeblog.newPost", params);
            
            System.out.println(rsString);
            
        }catch(Exception e) {
            e.printStackTrace();
        }
 
    }
}
 
 



네이버 블로그하고 다른점은...


네이버는 태그의 key값이 "tags"였고, 이글루스는 "mt_keywords"라는 점





'OpenAPI > 이글루스' 카테고리의 다른 글

이글루스 API OAuth JAVA 인증 500에러  (1) 2014.03.17
:
Posted by 정규식