생각하는 아져씨

Notion to Tistory! 노션에 필기한 자료를 티스토리에 한번에 업로드하기 본문

기타 개발 꿀팁

Notion to Tistory! 노션에 필기한 자료를 티스토리에 한번에 업로드하기

azeomi 2023. 3. 6. 23:54

최근 노션은 기록을 하는 메모장을 넘어서 AI의 기능까지 도입해 아주 생산적인 글 작성도 도와줄만큼 많이 발전했다.

이러한 노션은 나에게도 너무 유용하고 스터디, 연구일지, 플래너 등 다양한 곳에 활용하고 있다.

 

왜? 노션을 티스토리에 바로 업로드 하고 싶어했나?

노션은 단축키가 익숙하고 빠르게 정리가 가능하다. 나에게 노션은 기록의 총 집합 같은 느낌인데, 가끔 티스토리에 업로드하고 싶은 글들이 있다. 그때마다 복사/붙여넣기 했었는데 너무 비효율적이었고 시간 낭비라고 생각했다. 

 

결론부터, Notion을 Tistory에 바로 업로드 하는 방법은?!

어떤 개발자님께서 OpenAPI를 사용해 Notion에 작성한 글을 Tistory에 발행할 수 있는 코드를 구현해놓으셨다. 이미 알고있는 사람은 유용하게 쓰고 있는 코드였고 나도 얼른 활용하고 싶었다. 

https://github.com/jmjeon94/N2T

 

GitHub - jmjeon94/N2T: Notion에서 Tistory로 포스팅을 해줍니다.

Notion에서 Tistory로 포스팅을 해줍니다. Contribute to jmjeon94/N2T development by creating an account on GitHub.

github.com

깃헙 README.md에 상세하게 나와있는 친절한 레포였다. 차근차근 따라하면 바로 성공할 수도 있고 아닐 수도 있다.

바로 성공하지 못한다면 블로그의 댓글이나 깃헙의 이슈를 살펴보면 다른 사람들이 남겨놓은 문제들을 확인할 수 있고 대부분 그 안에서 해결할 수 있는 것 같다. 

나는 다음의 문제들을 겪었고 최종적으로 해결하여 유용하게 사용하고 있다.

 

N2T 실행에 성공하기 위해  필요한 것

내가 실행에 성공했던 환경을 기록한다.

1. 개발 환경

  • conda 가상환경 위에서 실행 (패키지 버전 안정을 위해서)
  • python=3.7
    beautifulsoup4 = 4.11.2
    lxml = 4.9.2
    notion = 0.0.28
    openssl = 1.1.1t
    requests = 2.28.2
    selenium = 4.8.2
    tqdm = 4.65.0
    webdriver-manager = 3.8.5

 

2. 노션 테이블

노션 테이블은 따로 만드는 것보다 N2T 깃헙 또는 블로그에서 제공해주는 노션 페이지를 복제하는게 가장 좋다.

 

3. IndexError: list index out of range 에러 발생 해결

가장 많이 발생하는 에러인 것 같다. 

SeleniumClient.py 파일에서 78 line 쯤에서 에러가 발생하는데

soup = BeautifulSoup(resp, 'html.parser')
code = soup.script.text.split('code=')[1].split('&state')[0]

이 부분을 확인해보면 된다.

먼저, autorize_url이 잘 나오는지 확인한다.

print('autorize_url :', authorize_url)
>> 여기서 나온 url을 눌렀을 때 아래 페이지가 나와야 함

중요한점: REDIRECT_URI 마지막에 / 가 있어야 함.

그래도 안된다면, client_id 또는 REDIRECT_URI를 제대로 넣었는지 확인한다.

 

두번째, soup을 확인한다.

soup을 찍어보면 authoize code를 받았는지 확인할 수 있는데, 

<title>Tistory OAuth </title> 

이 적혀있지 않으면 권한 코드를 받지 못한 것이다.

 

세번째, soup.script.text 대신 soup.script.string

버전에 따라서 text 또는 string을 써야 한다고 한다.

 

마지막, 카카오톡 2단계 인증 로그인 확인

저 단계에서 카카오톡 2단계 인증 로그인이 걸려있으면 로그인을 실패한다.

꼭 확인해줘야 로그인을 성공하고 권한 코드를 받는 단계로 넘어갈 수 있다.

피씨카톡에서 알림이 안온다. 휴대폰을 꼭 확인해보자.

 

이렇게 하면 N2T를 성공할 수 있다!

노션에 작성했던 페이지 그대로 업로드되는 것을 확인할 수 있다. 😆