IT 지식/기타

Tistory 블로그 글 작성 Open API (JAVA)

나아가는중 2022. 7. 28. 23:05
반응형

티스토리의 Open API를 사용하여 블로그 글을 작성하는 방법 1탄입니다.
여기서는 자바 언어를 사용하여 구현합니다.


Open API를 사용하기에 앞서 몇가지 준비사항이 필요합니다.

  1. Open API 앱 등록
  2. 권한 허가하기
  3. Access Token 획득하기
  4. Category ID 카테고리 아이디

Open API 앱 등록

아래 링크로 접속하여 앱 등록을 진행해야 합니다.
https://www.tistory.com/guide/api/manage/register
앱 등록 화면에서 아래 항목들을 설정하고 등록해주시면 됩니다.
서비스 명: 블로그 이름
서비스 URL: 블로그 주소
서비스 형태: 웹서비스
서비스 권한: 읽기, 쓰기
CallBack: 블로그 주소 (서비스 URL과 동일)


앱 등록을 완료하면 App ID와 Secret Key를 보여줍니다.
이 App ID와 Secret Key를 잘 저장해두셔야 합니다.

권한 허가하기

인터넷 주소창에 아래 URL을 입력하여 들어가서 하가를 해주어야 합니다.
https://www.tistory.com/oauth/authorize?client_id={AppID)&redirect_uri={서비스 URL}&response_type=code
여기에서 사용되는 AppID는 앱 등록시 획득한 App ID이며 서비스 URL은 블로그 주소입니다.


직접 입력하는게 어렵거나 귀찮으시면 아래 함수를 사용하여 URL을 구하면 됩니다.

    public static String getAuthenticationUrl(String clientId, String redirectUri) {
        return "https://www.tistory.com/oauth/authorize?client_id="
                + clientId
                + "&redirect_uri="
                + redirectUri
                + "&response_type=code";
    }

허가하기 이후 이동한 화면의 주소에서 code={code}&state=spomeValue의 code 값을 저장해두어야 합니다.

Access Token 획득하기

다음으로 Open API에서 사용할 Access Token을 획득해야 합니다.


아래 함수를 사용해서 tistory에 요청하여 access token을 획득합니다.
함수를 호출한 뒤 리턴 값의 access token을 저장해둡니다.


clientId: App ID
clientSecret: Secret Key
redirectUri: 블로그 주소

    public static String getAccessToken(String clientId, String clientSecret, String redirectUri, String code) {
        try {
            String url = "https://www.tistory.com/oauth/access_token?"
                    + "client_id=" + clientId + "&"
                    + "client_secret=" + clientSecret + "&"
                    + "redirect_uri=" + redirectUri + "&"
                    + "code=" + code + "&"
                    + "grant_type=authorization_code";

            URL obj = new URL(url);

            HttpURLConnection connection = (HttpURLConnection) obj.openConnection();
            connection.setRequestMethod("GET");

            BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8"));

            return br.readLine();
        } catch (IOException e) {
            e.printStackTrace();

            return "Error";
        }
    }
반응형

'IT 지식 > 기타' 카테고리의 다른 글

라이브러리(Library) & 프레임워크(Framework)  (0) 2022.01.24