ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • N2T 설정하기
    ETC 2023. 11. 11. 00:51

    그동안 바쁘다는 핑계로 정리하지 못했지만,

    연초에 위시리스트로 작성했었던 블로그 글 정리를 연말이 되어서야 해봅니다.

    그런데 요즘 Notion → Tistory로 글을 전달해줄 수도 있다고 해서

    저도 한 번 해보았습니다!!

    방법으로는


    1. 노션에 블로그 글들을 올릴 Table을 하나 만든다.

    2. GitHub을 clone한다.

    3. config.py, main.py 등 정보를 기입한다.

    4. main.py를 실행시킨다.

    5. 알아서 로그인을 하고 tistory에 글을 등록시켜준다.

    6. 끝


    쉬워보여서 금방할 것이라 생각했지만,

    몇가지 헤맸던 부분들이 있어서 기록으로 남겨봅니다.


    그럼 순서대로 시작해봅니다.

    1. 노션에 블로그 글들을 올릴 Table을 하나 만든다.

    • 위에 있는 주소로 들어가서 테이블 템플릿을 복제 해옵니다. (오른쪽 상단 복제 버튼 클릭!)
    • 제목은 작성할 블로그 제목 / 카테고리는 블로그에서 어디 카테고리에 넣을지 설정을 해줍니다.
    • 상태발행 요청으로 해두고,
    • 링크는 나중에 블로그 글을 올려서 발행 완료가 되면 자동으로 링크 주소가 생기게 됩니다. (따로 작성 x)

    2. GitHub을 clone한다.

    • N2T 관련해서 설정을 하기 위해 로컬에 폴더를 하나 만들고, 터미널에서 아래 명령어를 작성하여 git clone을 해줍니다.

      git clone https://github.com/jmjeon94/N2T.git

    • 그럼 만들어준 폴더 안에 N2T라는 폴더가 생성됩니다.
    • N2T 폴더 안으로 들어가서, requirements.txt가 있는 곳에서 코드 실행에 필요한 패키지를 설치를 해줍니다.

      명령어로 pip3 install -r requirements.txt를 실행시켜줍니다.

    3. config.py, main.py 등 정보를 기입한다.

    • config.py파일을 열어서 아래 내용들을 작성합니다.
    # 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='',
        )
    )
    • ID : 카카오 ID (tistory 계정)
    • PW : 카카오 PW
    • BLOG_NAME : https://xxx.tistory.com/ ← 이러한 tistory주소에서 xxx에 해당함.
    • CLIENT_ID : 위에 오픈 API에서 생성한 App ID
    • REDIRECT_URI : 오픈 API 생성할 때 써 준 서비스 URL (ex, https://xxx.tistory.com/)
    • TOKEN_V2 : 아래와 같이 이동해서 토큰값을 얻어올 수 있음
      • 화면 아무데서나 오른쪽 마우스 클릭해서 검사 로 이동
      • 그럼 오른쪽에 화면이 뜨는데, 상단 메뉴바에서 Application 클릭 후 아래 이미지에 작성한 순서대로 클릭 → token_v2 글자 모두 선택하여 복사하여 config.py TOKEN_V2에 작성함.
    • TABLE_PAGE_URL : 아까 1번에서 노션에 복사해서 만들었던 노션 페이지 url
      • 상단 오른쪽에 Share → Copy link 눌러서 url 가지고 올 수 있음

    4. main.py를 실행시킨다.

    • 아까 N2T 폴더 안에서 python3 main.py 를 실행시킨다.

    5. 알아서 로그인을 하고 tistory에 글을 등록시켜준다.

    • 그러나 예외는 있다…. (사실 이거 때문에 글 작성을 하게 되었다..ㅠ)
      • 아래와 같이 로그인도 잘 되고 잘 올라가나보다 하고 있었는데..

      • 첫번째 에러
        • [Error] notion token값이 올바르지 않습니다. 다시 확인해주세요 . [{}]'.format(token_v2))
        • 해결 방법
          • ~/Library/Python/3.9/lib/python/site-packages/client.py 파일 열기
            • method_whitelistallowed_methods 변경
          • N2T 폴더 → client 폴더 → NotionClient.py
            • .format(token_v2).format(notion_token) 변경

      • 두번째 에러
        • raise ValueError(f'[Error] Tistory 인증 코드 발급 실패. 위의 출력 메시지를 보고 로그인이 되어있는지 확인해주세요.')
        • 해결 방법
          • 이중 로그인 설정을 해제한다.
          • tistory블로그 url 설정을 확인한다.
            • config.py REDIRECT_URI / 오픈 API 만들 때 서비스 url과 callback url 모두 https:// 부터 마지막 / 슬래시까지 동일해야함. (나는 REDIRECT_URI에 마지막 슬래시 안붙여줘서 에러남…)

      • 세번째 에러
        • ValueError: [Error] 티스토리에 해당 카테고리가 없습니다.
        • 해결 방법
          • tistory 카테고리가 아래와 같이 Test카테고리 안에 Basic카테고리가 있다면, 노션 Table 카테고리에 Test/Basic 형식으로 작성해야함.

        • 그리하여 tistory블로그에 잘 올라가는 것을 확인하였습니다!!!!
        • 이 글도 N2T로 작성해봅니다. 진짜 끝!!

    Uploaded by N2T

    반응형

    댓글

Designed by Tistory.