그동안 바쁘다는 핑계로 정리하지 못했지만,
연초에 위시리스트로 작성했었던 블로그 글 정리를 연말이 되어서야 해봅니다.
그런데 요즘 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에 해당함.
- SECRET_KEY : 아래 오픈 API에서 생성한 Secret Key
- 위의 주소에서 오픈 API를 만들어서 얻을 수 있음.
- ex,
- 그럼 아래와 같이 App ID와 Secret Key가 나옴
- CLIENT_ID : 위에 오픈 API에서 생성한 App ID
- REDIRECT_URI : 오픈 API 생성할 때 써 준 서비스 URL (ex, https://xxx.tistory.com/)
- TOKEN_V2 : 아래와 같이 이동해서 토큰값을 얻어올 수 있음
- https://www.notion.so/ 로 이동.
- 화면 아무데서나 오른쪽 마우스 클릭해서
검사
로 이동
- 그럼 오른쪽에 화면이 뜨는데, 상단 메뉴바에서
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_whitelist
→allowed_methods
변경
- N2T 폴더 → client 폴더 → NotionClient.py
.format(token_v2)
→.format(notion_token)
변경
- ~/Library/Python/3.9/lib/python/site-packages/client.py 파일 열기
- 두번째 에러
- 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 카테고리가 아래와 같이 Test카테고리 안에 Basic카테고리가 있다면,
노션 Table 카테고리에
- 끝
- 그리하여 tistory블로그에 잘 올라가는 것을 확인하였습니다!!!!
- 이 글도 N2T로 작성해봅니다. 진짜 끝!!
Uploaded by N2T