2020년 3월 2일 월요일

OpenAPI를 사용하여 티스토리 자동글쓰기

안녕하세요?
이전에는 XML-RPC를 사용한 네이버 블로그 API 글 등록을 해봤었습니다. 이번에는 Open API를 사용하여 티스토리에 글쓰기를 해보겠습니다.
티스토리는 주요기능이 포함된 OAuth2.0 기반 Open API를 제공합니다. 보안 프로토콜과 함께 REST방식을 지원하며 이기능을 사용하여 티스토리에 글쓰기를 하는 과정을 담았습니다. 예전에 티스토리도 XML-RPC방식으로 글쓰기가 가능한것 같습니다만 현재는 지원을 안하는것 같으며 글등록 개수도 제한이 되어 현 가입한 사용자는 하루 글등록 개수가 15개이며 예전 사용자는 글을 더 등록할수 있는것 같습니다.


■ 사전작업
티스토리에서 앱등록을 해야하며 Callback항목에는 자신의 블로그주소를 입력해주면됩니다. 등록을 완료하면 App ID와 Secret Key를 발급받을수 있습니다. 자동글쓰기를 할때 Access Token이 필요한데 생성방법은 아래 주소를https://www.tistory.com/oauth/authorize?client_id=[
자신의 App ID]&redirect_uri=[자신의 Callback 주소]&response_type=token
URL창에 입력후 실행하면 https://[자신의 블로그주소]/#access_token=ff30c2b4dedb2302791708a9aa63a3ea_4ae50b7da4097cd0eb237c7d15b098e9&state= 이런 URL를 Callback받을수 있습니다. 노란색으로 마킹된 Access Token은 자동글쓰기 프로그램에 설정이 필요한 정보이며 유효시간이 존재하여 시간이 지나면 Access Token을 다시 생성해야합니다.











■ 자바프로그램 자동글쓰기 구현
Access Token값을 설정 후에 블로그 글쓰기 정보를 입력해줘야하는데.. 카테고리는 아래 주소를 입력후 실행하면 카테고리번호를 확인할수 있습니다.
https://www.tistory.com/apis/category/list?ccess_token=[발급된 토큰정보]&output=&blogName=[블로그주소]
블로그 주소는 https://xxx.tistory.com주소의 xxx를 입력해주시면 됩니다. 나머지 변수에 대한 정보는 홈페이지를 참조하시면 됩니다.

private final static String ACCESS_TOKEN = "";

// Request parameters and other properties.
List<NameValuePair> params = new ArrayList<NameValuePair>(12);
params.add(new BasicNameValuePair("access_token", ACCESS_TOKEN));
params.add(new BasicNameValuePair("output", ""));
params.add(new BasicNameValuePair("blogName", ""));
params.add(new BasicNameValuePair("title", ""));
params.add(new BasicNameValuePair("content", header+content.toString()));
params.add(new BasicNameValuePair("visibility", "3"));
params.add(new BasicNameValuePair("category", "872741"));
params.add(new BasicNameValuePair("published", ""));
params.add(new BasicNameValuePair("slogan", ""));
params.add(new BasicNameValuePair("tag", keyword+convTag));
params.add(new BasicNameValuePair("acceptComment", ""));
params.add(new BasicNameValuePair("password", ""));

글쓰기 변수 데이터를 설정 후에 실행을 하게되면 성공인 경우 성공코드와 함께 등록된 글주소가 리턴이되며 에러인경우 에러코드와 함께 메시지가 리턴됩니다.
try {
httppost.setEntity(new UrlEncodedFormEntity(params, "UTF-8"));
} catch (UnsupportedEncodingException e) {
System.out.println(e.getMessage());
}

// Execute and get the response.
HttpResponse response;
String theString = "";
try {
response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();

if (entity != null) {
try (InputStream instream = entity.getContent()) {
theString = IOUtils.toString(instream, "UTF-8");
System.out.println("theString = " + theString);
}
}
} catch (IOException e) {
System.out.println(e.getMessage());
}

■ 테스트결과

지금까지 Open API를 사용하여 티스토리에 자동글쓰기를 해봤습니다.
끝까지 봐주셔서 감사합니다.



#OpenAPI #티스토리 #자동글쓰기

댓글 없음:

댓글 쓰기