티스토리API 이용 글목록 다운받기 - 티스토리API access token(토큰) 확인하기!

2020. 9. 20. 09:09

티스토리는 포스트마다 주소가 정해져 있다. 설정에서 영문이나 숫자로 정할 수 있는데, 보통 숫자로 하는 듯하여 필자도 숫자로 정하였다. 그런데 숫자로 정하고 나면 구글 애널리틱스의 포스팅 분석 결과가 주소에 있는 숫자 기준으로 나열되어 어떤 포스트인지 알 수 없는 문제가 있다. 매번 주소창에 검색해서 어떤 포스팅인지 확인하는 것이 번거러워, 티스토리 오픈API를 이용하여 글의 목록을 다운받아 보려고 한다.


이 포스팅을 18년3월12일에 작성한 후 API 사용에 변화가 생겼다. API사용을 위해서는 access_token 정보를 받아와야 하는데, 로컬에서 받을 수 없게 변경됐다. 여기저기 이곳저곳 찾아보다 방법을 알게 됐고, 이를 공유하고자 한다.


글목록

(구글 애널리틱스의 포스트별 통계)



바로 위의 화면이 구글 애널리틱스의 포스트별 통계화면이다. 숫자로 되어 있어서 도저히 어떤 포스트인지 내용을 알 수가 없다.




오늘은 그 첫번째로 우선 티스토리 OPEN API의 access_token(토큰)을 확인하고자 한다. 



제목



티스토리 오픈 API를 이용하기 위해서는 먼저 클라이언트 등록을 해야 한다. 클라이언트 등록을 위해 티스토리 메인페이지(https://www.tistory.com)에 접속한다. 제일 하단에 보면 오픈API라는 작은 메뉴를 찾을 수 있다. 해당 메뉴를 클릭하면 앱등록을 할 수 있는 화면이 나온다. 


필자는 이미 등록을 하여 밑에 테스트라는 서비스명이 하나 있다. 등록을 하면 클라이언트ID와 시크릿 키를 받을 수 있다. 여기서 주의해야 하는 정보는 CallBack주소이다.


API코드를 받을 때 주소값으로 회신이 온다. 이 값을 회신 받을 주소가 CallBack주소이다. 필자는 그냥 내 티스토리 블로그 주소로 하였다. 하지만 그냥 티스토리 주소를 넣어도 상관은 없다. 



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


인증코드를 받기 위해서는 2번 작업을 해야 한다. 먼저 code값을 받아오고, 이를 이용해서 access_token을 받아온다. API사용설명은 아래 주소를 참조하면 알 수 있다.

( 참조: 티스토리 API 사용 홈페이지 )



먼저, 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://tariat.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는 사용하는 것은 불가능한가 싶을 때 해결방법을 찾았다.

티스토리_API_오류



위와 같이 에러가 발생해도 access_token값을 확인할 수 있다는 것을 아래 블로그를 통해 알게 됐다.
( 참조: [Tistory] 티스토리 Open API 이용하기 - 2020년 9월 1일 tistory 정책 변경 이후 (Implicit 인증 제거) )


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

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



참고로 Status가 200이어야 성공한 것이다. 이제 access_token을 받았으니 해당 코드를 통해서, 티스토리 오픈API를 이용할 수 있다.


다음 포스팅에서는 이를 이용하여 티스토리 글목록을 다운 받아 보았다. 자세한 내용은 아래 포스팅을 참조하길 바란다. 

(참조: 티스토리API를 활용하여 글목록 가져오기 (오픈API, 파이썬 활용) )


아는 것이 힘이다! 티스토리 꿀팁과 방법들이 궁금하다면, 아래 링크를 클릭해보자..

► 티스토리 꿀팁과 방법들, 어떤 것이 있을까? 클릭!

댓글()
  1. 2019.05.14 22:21 댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

  2. 2019.05.15 21:49 댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다