티스토리는 포스트마다 주소가 정해져 있습니다. 설정에서 영문이나 숫자로 정할 수 있는데, 영문으로 하는 것이 구글 SEO에 더 유리합니다. 구글 애널리틱스의 포스팅 분석 결과에 주소가 있지만 어떤 포스트인지 알기 어려운 문제가 있습니다. 매번 주소창에 검색해서 어떤 포스팅인지 확인하는 것도 번거럽습니다. 그래서 티스토리 오픈API를 이용하여 글의 목록을 다운받아 보고자 합니다.

API사용을 위해서는 access_token 정보를 받아와야 하는데, 로컬에서 받을 수 없게 변경됐습니다.

1. 클라이언 틍록

티스토리 오픈 API를 이용하기 위해서는 먼저 클라이언트 등록을 해야 합니다. 클라이언트 등록을 위해 티스토리 메인페이지에 접속합니다. 제일 하단에 보면 오픈API라는 작은 메뉴를 찾을 수 있습니다. 해당 메뉴를 클릭하면 앱등록을 할 수 있는 화면이 나옵니다.

 

여기서 등록을 하면 클라이언트ID와 시크릿 키를 받을 수 있습니다. 여기서 주의해야 하는 정보는 CallBack주소인데요. API코드를 받을 때 주소값으로 회신이 옵니다. 이 값을 회신 받을 주소가 CallBack주소입니다. 저는 그냥 제 티스토리 블로그 주소로 하였습니다. 하지만 그냥 티스토리 주소를 넣어도 상관 없습니다.

 

이제 설정은 끝났습니다. 인증 코드를 받기 위해 굳이 파이썬을 사용할 필요는 없지만, 뒤에 글의 목록을 가져오는 것까지 고려해서 인증코드 받는 작업을 해 보았다

 

2. API 인증코드 방기

인증코드를 받기 위해서는 2번 작업을 해야 합니다. 먼저 code값을 받아오고, 이를 이용해서 access_token을 받아옵니다. 먼저 code값을 가져옵니다.

import pandas as pd
import json
import webbrowser
from urllib.request import urlopen


client_id=""
secret_key=""


url="https://www.tistory.com/oauth/authorize?client_id={}&redirect_uri=https://adsense.tistory.com&response_type=code".format(client_id)
webbrowser.open(url)


# 2. 회신받은 주소를 통해 code값을 추출합다
result=input("주소창에 있는 값을 복사해서 입력 바랍니다:  ")

temp=result.split("code=")[1]
code=temp.split("&state")[0]

 

위의 코드를 실행하면, 웹브라우저가 실행됩니다. 현재는 필자의 티스토리 주소로 웹브라우저가 실행되는데, redirect_url을 자신의 티스토리 블로그로 변경하면 됩니다. 웹브라우저의 주소창에는 code값이 포함돼 있습니다. 해당 url을 복사해서 입력하면 code값만 별도로 변수에 저장됩니다.

 

이제 access_token 정보를 받아 옵니다.

url="https://www.tistory.com/oauth/access_token?client_id={}&client_secret={}&redirect_uri=https://tariat.tistory.com&code={}&grant_type=authorization_code".format(client_id,secret_key,code)

webbrowser.open(url)

 

그런데 여기서 문제가 발생합니다. 위에서 언급했지만 access_token은 서버에서 요청해야 하기 때문에, 해당 주소를 입력하면 아래와 같이 에러가 발생하는 것을 알 수 있습니다. 이대로 티스토리 API는 사용하는 것은 불가능한가 싶을 때 해결방법을 찾았습니다.

This page contains the following errors:
error on line 1 at column1: Document is empty
Below is a rendering of the page up to the first error.

 

위와 같이 에러가 발생해도 access_token값을 확인할 수 있다는 것을 알게 됐습니다.

방법은 이렇습니다. 에러가 발생해도 access_token을 확인할 수 있는데요. 우선 개발자도구를 엽니다. [보기]-[개발자 정보]- [개발자 도구]를 클릭합니다. Network탭을 클릭하고 위의 방법으로 access_token을 요청합니다. 참고로 한 번 access_token을 요청하면 해당 코드는 사용할 수 없습니다. 즉 code 요청부터 다시해야 합니다.

 

참고로 Network탭이 열려 있는 상태에서 URL에 접속해야 확인이 가능합니다. 다시 해보면 아래와 같이 access_token정보를 확인할 수 있습니다.

 

 

Network탭-화면-캡쳐
access token 확인

 

 

참고로 Status가 200이어야 성공한 것입니다. 이제 access_token을 받았으니 해당 코드를 통해서, 티스토리 오픈API를 이용할 수 있습니다. 이를 이용하여 티스토리 글목록을 다운로드 하는 것은 다음에 자세히 알아보겠습니다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기