notion-py Invalid Input 에러 해결하기

bluestragglr·2021년 4월 25일
0
post-thumbnail

😗 이 글은 에러 해결에 관한 글으로, notion-py를 이용해 notion 페이지를 파싱하고 보관하는 과정에 대해서는 다루지 않습니다.

잡설

현재 회사에서 스크럼을 진행하기로 한 지 13주정도가 되었습니다. 감에 의존하는 스크럼이 아니라 실제 데이터를 기반으로 이슈 크기 등을 측정하고 추적하기 위해서 노션에 문서를 작성하고 Django와 notion-py를 이용해 스크럼 문서를 파싱해 데이터화 하고 있었습니다.

하지만 어느 순간부터 어떠한 코드변경도 없었음에도 배포된 프로젝트는 물론이고 로컬에서 $ python3 manage.py runserver 를 통해 실행하는 로컬 서버도 실행되지 않는 것을 확인하였습니다. 콘솔에는 "There was an error (400) submitting the request"
"requests.exceptions.HTTPError: Invalid input." 와 같은 메세지가 출력되고 있었습니다.

해결 방법

알고 보니 notion-py 라이브러리 자체의 문제였고, 이에 대한 이슈 리포팅이 해당 레포지토리에 등록되어 있었습니다. (notion-py #292) 아직 공식적인 fix가 배포되지는 않았지만, 올라와 있는 PR 중 하나를 이용해 오류를 수정할 수 있었습니다. notion-py #294 PR의 내용을 패키지에 적용하고 다시 runserver를 하니 정상적으로 실행되었습니다.

$ pip3 install -e git+https://github.com/c0j0s/notion-py#egg=notion

오류의 원인은 Notion API의 변화였습니다. 아직 Notion은 공식 API가 없습니다. 그렇다 보니 notion-py도 공식 API를 참조하는 것이 아니라 웹뷰를 크롤링해오는 방식으로 구현되어 있는데, Notion 웹뷰 GET시 최대로 요청할 수 있는 블록 개수가 변하여 문제가 발생한 것이었습니다.

profile
디자인하는 프론트엔드 개발자입니다. 우아한형제들에서 일하고 있습니다.

0개의 댓글