파비의 매일매일 공부기록

티스토리 자동 글 생성기 using Python #1 본문

Side Project (완료)/티스토리 자동 글 생성기 (2021)

티스토리 자동 글 생성기 using Python #1

fabichoi 2021. 9. 3. 23:09

DP 문제 풀이를 하긴 해야 되는데..

하기가 좀 꺼려지고 ㅠㅠ 시간도 많이 들기도 하고

무엇보다 자꾸 책만 보고 비슷하게 짜려고 해서 현타가 왔다.

 

그리고 티스토리 글을 예약해서 써놓는데 이미 예약해 놓은 글도 거의 다 소진됐고

또 수동으로 등록해야 하는데 그게 너무 귀찮아서

 

python으로 티스토리 자동 글 생성기를 만드려고 한다.

'블로그에 자동으로 글 업로드(feat. python)'(저자 디큐) E-북이 있길래 슬쩍 훑어봤는데

API 신청하고 호출하는 거 정도를 빼면 딱히 참고할 내용은 없는 거 같아서

그냥 내가 처음부터 만들 예정.

 

일단 API 호출을 하려면 티스토리 쪽에 신청해야 함.

https://www.tistory.com/guide/api/manage/register

 

TISTORY

나를 표현하는 블로그를 만들어보세요.

www.tistory.com

그리고 API에 대한 GitBook은 아래의 링크를 참조하면 됨.

https://tistory.github.io/document-tistory-apis/

 

소개 · GitBook

No results matching ""

tistory.github.io

등록하고 나면 App ID와 Secret Key가 나온다.

어디에 따로 적어 놓거나 스크린숏을 찍어 놓는 걸 추천.

(앱 관리 텝에서 볼 수 있기는 함.. ㅋㅋㅋㅋ)

 

그러고 나서는 POSTMAN 같이 Request를 날려볼 수 있는 도구를 사용해서

가이드대로 Authorization Code를 받아오면 된다.

Authorization Code가 없으면 어떤 Request도 보낼 수가 음슴.

(https://tistory.github.io/document-tistory-apis/auth/authorization_code.html)

 

음... 이다음에 살짝 삽질을 하게 되는데

일단 Authorization Code는 크롬에서 받아야 된다. POSTMAN으로 하면 안 됨.. ㅠㅠ

(혹시 되는 분이 있었으면 댓글로 남겨주시면 감사드리겠습니다.)

 

그다음 access_token을 받는 과정은 POSTMAN으로 진행해도 문제없다.

 

POSTMAN의 Environment를 Tistory API 전용 세팅으로 하나 만들어서

access_token을 등록해두고 요청 시 {{access_token}} 값으로 이용하면 매우 용이하다.

 

API 문서를 따라가면서 필요한 것들을 POSTMAN에 일단 적어두고

이제 Python으로 코딩을 시작해야 한다.

 

python 기본 라이브러리로 request 하고 response 받고 하는 것도 좋지만,

웬만하면 좀 더 편하게 다른 사람이 만든 라이브러리를 이용해 보기로 한다.

구글링을 해보니 request 라이브러리를 활용하는 글이 가장 먼저 나와서

별생각 없이 request 라이브러리를 사용하기로 했다.

 

이번에는 python 3.8.2 버전을 이용해보려고 한다.

윈도즈에서 환경 설정을 하려고 하니

일단 pyenv install 3.8.2를 수행하고

pyenv global 3.8.2로 버전 변경을 한다.

그 후에 pycharm에서 프로젝트 설정을 3.8.2의 경로로 설정해주면 된다.

(맥은 그냥 pyenv-virtualenv 한방에 되는데.. ㅠㅠ)

 

일단 requirement.txt 파일을 만들고

requests==2.26.0를 저장하고 닫는다. (오늘 pypi에서 조회해본 최신 버전)

그리고 pip install -r requirements.txt를 하면 request가 설치된다.

파일 만들기 귀찮으면 그냥 pip install reuqests==2.26.0 입력하면 된다.

(requirements 파일을 이용하기 위해서는 -r 옵션이 필요.)

 

그다음은 깃헙 쪽 설정을 해봤다. (https://www.daleseo.com/git-init/ 참조)

기존에는 repo하나 생성해서 clone 받아서 작업을 했는데

이번에는 로컬에서 git init를 활용해서 repo를 생성해봤다. (gitflow도 적용)

(로그인은 예전과 달리 password를 쓸 수 없다. https://github.com/settings/tokens를 통해 생성한 key를 password에 넣으면 된다. 다른 곳에 저장해 놓으면 편리하다. 생성된 key를 다시 볼 수가 없음 ㅠㅠ)

 

예전과 달리 repo를 만들면 기본 브랜치가 master가 아니고 main이라서 이걸 합치느라고 조금 귀찮은 일이 있었다.

main을 master에 rebase 시키고 main을 PR 해서 master/develop에 머지시키고

마지막으로 develop을 master에 머지시키면 되었다.

(처음부터 main을 develop에 머지시켰으면 좀 더 간단했을 듯?)

 

그리고 이제부터는 gitflow로 브랜치 따서 작업하되

commit 메시지에 issue number를 포함해볼 예정이다.

물논 issue를 등록하고 작업할 예정.

 

아 그리고 nodejs에서 환경변수 등을 사용할 때 사용했던 dotenv가

python 라이브러리로 존재해서 한 번 써보기로 했다.

사용법은 공식 문서도 있긴 한데.. 그냥 아래 블로그 참조했음.

(https://velog.io/@yvvyoon/python-env-dotenv)

 

발행 시각을 지정하려면 timestamp형태로 바꿔야 되는데

해당 내용은 아래 블로그를 참조했다.

(https://inma.tistory.com/96)

 

문제없이 글 생성되는 건 확인했고..

깃헙도 PR & Push를 마치고 오늘은 여기까지!

 

여기까지 진행하는데 대략 3시간 20분 정도 소요된 듯하다 ㅋㅋㅋ

반응형
Comments