티스토리 뷰

반응형

개요

드디어 Notion에서 Tistory 옮기는 코드를 정리해서 공개하려고 합니다. 처음 작업을 시작한지가 벌써 1년 반 정도가 지난 것 같네요. 지금까지 오픈하지 못했던 이유는 코드가 너무 지저분했고, 개개인마다 설정해줘야 하는 다양한 번거로움이 있었습니다. 지금은 어느정도 해결된 부분이 있어 최소한의 설정 파일로 동작하도록 개발하였습니다.

아래는 N2T 코드 github 링크 입니다.

https://github.com/jmjeon94/N2T

기능

아래와 같은 노션 테이블 페이지에서 상태 컬럼을 발행 요청/수정 요청으로 두면 해당 내용이 자동으로 티스토리 블로그로 업로드 해줍니다.

준비사항

  • Python 등 개발관련 기초 지식
  • 크롬 부라우저 (selenium 사용)
  • 카카오와 연동된 티스토리 계정
  • 티스토리 Open API 에서 본인의 블로그 등록
    • App ID, Secret Key 발급
  • (선택) 앱 비밀번호가 생성된 Gmail 계정 (포스팅 알림용)

사용방법

노션 테이블 템플릿 만들기

  • 아래와 같이 표형식 table을 만들고 테이블 컬럼을 아래와 같이 만들어줍니다.
  • 여기를 클릭해서 템플릿을 복제해서 사용하셔도 됩니다.
컬럼명속성설명
제목제목업로드할 게시물의 제목
카테고리선택게시물의 카테고리
태그다중 선택게시물의 태그들
상태선택발행 요청,수정 요청으로 되어있을 때 게시물을 업로드 함 업로드 완료 이후에는 발행 완료로 값이 바뀜
링크URL발행 완료 후 업로드된 url 링크가 자동 입력됨

코드 clone하기

  • 로컬 PC의 원하는 디렉토리로 가서 코드를 clone 합니다.
git clone https://github.com/jmjeon94/N2T.git

패키지 설치하기

  • 아래 명령어로 코드 실행에 필요한 패키지를 설치해줍니다.
pip3 install -r requirements.txt

설정 파일 입력하기

👉
config.py 파일을 열고 각 항목에 본인에 맞게 값을 입력해줍니다.

아래 설정 파일에 적는 항목은 티스토리 업로드 권한 획득(token 발급) 외에 전혀 사용하지 않습니다.

Tistory 설정

  • TISTORY의 ID, PW는 카카오로 연동된 계정으로 카카오 계정과 비밀번호를 적어야 합니다.
  • BLOG_NAME: 본인의 블로그 이름 xxx.tistory.com 에서 xxx를 입력 합니다.
  • SECRET KEY, CLIENT ID, REDIRECT_URI: Open API 등록시 발급받은 값을 입력합니다.
    • CLIENT ID: API 등록시의 App ID
    • REDIRECT_URI: API 등록시의 CallBack 링크

Notion 설정

  • TOKEN_V2: 여기를 확인해서 본인의 token_v2값을 입력합니다.
  • TABLE_PAGE_URL: 자동으로 업로드할 notion page의 url을 입력합니다. (위에서 복제한 노션 템플릿의 링크)
  • DOWNLOAD_DIR: notion page를 html 파일로 임시 다운로드 할 경로입니다. (수정하지 않으면 ~/.n2t 폴더가 자동으로 생성됨)
  • CODE_BLOCK_THEME: 코드블럭을 사용하시는 분에 한해서 테마를 지정합니다. 테마 목록은 여기에서 확인할 수 있습니다. (default: atom-one-dark)

MAIL 설정 (선택)

  • mail은 선택 사항으로 게시물 발행시 메일로 알림을 보내줍니다. 사용하지 않을 시 빈칸으로 두시면 됩니다.
  • Gmail만 가능하며 ID에는 gmail 계정을 입력합니다.
# config 파일 예시
cfg = dotdict(
    TISTORY=dotdict(
        ID='kakao email',
        PW='kakao password',
        BLOG_NAME='blog_name',
        SECRET_KEY='xxx',
        CLIENT_ID='xxx',
        REDIRECT_URI='https://blog_name.tistory.com',
    ),
    NOTION=dotdict(
        TOKEN_V2='xxx',
        TABLE_PAGE_URL='https://www.notion.so/xxx',
        DOWNLOAD_DIR='~/.n2t',
        CODE_BLOCK_THEME='atom-one-dark',

        COLUMN=dotdict(
            TITLE='제목',
            CATEGORY='카테고리',
            TAG='태그',
            STATUS='상태',
            URL='링크'
        ),

        POST=dotdict(
            UPLOAD_VALUE='발행 요청',
            MODIFY_VALUE='수정 요청',
            COMPLETE_VALUE='발행 완료',
        ),
    ),
    MAIL=dotdict(
        ID='',
        KEY='',
    )
)

업로드하기

  • 이제 모든 설정이 완료되었습니다.
  • 터미널에서 아래 명령어로 main.py 파일을 실행해 줍니다.
python3 main.py

만약 Gmail 설정값을 입력해줬다면 아래처럼 업로드 알람 메일이 옵니다.

특정 시간마다 자동 실행하기 (선택)

위의 main 파일을 실행하면 노션 테이블의 게시물이 자동으로 업로드 됩니다. 하지만 노션에 글을 쓰고 티스토리로 업로드 할때마다 매번 코드를 실행해줘야 하는 번거로움이 있습다. 그래서 이마저 완전 자동화를 하기 위해 특정 시간마다 해당 python 파일을 실행해달라고 설정하여 완전 자동화를 할 수 있습니다. 상세한 설정 방법은 따로 다루지 않겠습니다.

  • Windows에서는 작업 스케쥴러로, MacOS에서는 cron 스케쥴러를 사용하면 됩니다.

정리

작업하면서 노션을 굳이 티스토리로 옮겨야 되나 라는 고민을 수없이 많이 했는데, 노션의 간편한 작성법이랑 티스토리의 검색, 광고 기능 두가지 모두 놓칠 수가 없었습니다.

그래서 결국 노션에서 작성한 글을 티스토리로 옮기는 프로그램을 만들었는데요. 저 뿐만이 아니라 저와 비슷한 고민을 하시는 분이 있으시다면 사용하시면 도움이 되지 않을까 싶습니다.

긴 시리즈 글 읽어주셔서 감사합니다.


Uploaded by N2T

반응형
댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday