Today
-
Yesterday
-
Total
-
  • [Tistory API] Node.js + Tistory Open API 사용후기
    Programing 2021. 7. 31. 16:54

    개요

    이번에 토이 프로젝트를 진행하며 Tistory Open API를 사용하였습니다. 공식 문서를 따라 하였는데, 조금 막히는 부분이 있었습니다. 

     

    해당 부분에 대한 정보 공유와 Node.js 환경에서 Tistory Open API를 사용하는 방법에 대해 작성해보겠습니다.


    관리되고 있지 않는 공식 문서

     

    소개 · GitBook

    No results matching ""

    tistory.github.io

     

     

    GitHub - tistory/document-tistory-apis: 티스토리 Open API 가이드

    티스토리 Open API 가이드. Contribute to tistory/document-tistory-apis development by creating an account on GitHub.

    github.com

    Tistory Open API 공식 문서에서는 API 사용법에 대해 작성되어 있습니다.

    Github를 찾아보면 공식 문서의 리포지토리를 찾을 수 있었습니다.

     

    하지만 2021년 7월 현재 해당 리포지토리는 방치되어 있는 것 같았습니다. 2020년 6월에 생성된 PR은 허가되지 않았고, 2019년 3월에 작성된 질문 이슈도 답변이 없었습니다.

     

    질문 중에는 Open API 사용량(호출량)에 대한 질문이 있었고, 나도 동일한 궁금증이 들어서 티스토리 고객센터로 문의를 넣어봤습니다.

    아직 답변이 오지 않았지만, 답변이 오면 다시 공유하겠습니다.


    앱 생성

     

    TISTORY

    나를 표현하는 블로그를 만들어보세요.

    www.tistory.com

    우선 Tistory Open API를 사용하려면 앱 등록을 진행하여야 합니다.

    저 같은 경우 서비스 URL과 CallBack은 본인 Tistory 블로그 URL로 설정하였고, 서비스 형태는 웹서비스, 권한은 조회 기능만 사용할 것 같아서 읽기 전용으로 하였습니다.

     

    앱 생성을 완료하면 App ID와 Secret Key가 생성됩니다. 해당 ID와 키는 외부에 노출되지 않게 주의해 주세요.


    인증받기

    https://www.tistory.com/oauth/authorize?client_id={앱의 ID}&redirect_uri={앱의 Callback}&response_type=code

    위의 링크에서 {앱의 ID}에 방금 등록한 앱의 App ID값을, {앱의 Callback}에 앱의 Callback값을 입력해 줍니다.

     

    보통 redirect_uri에 어떤 값을 넣어야 될지 따로 말이 없어서 그냥 아무 값이나 집어넣었었습니다. 그럴 경우 OAuth 창이 노출되지 않았는데, 확인해보니 앱의 Callback값을 정확하게 입력하니 문제가 해결되었습니다.

     

    브라우저에서 Tistory에 로그인되어 있지 않으면, 로그인 창이 노출됩니다. 로그인 이후에는 아래와 같은 OAuth 창이 노출됩니다.

    허가하기를 누르면 본인이 설정한 redirect_uri로 이동하게 됩니다. 이동하면서 URL 뒤에 code 쿼리 파라미터에 토큰 값이 포함되어 노출됩니다. 해당 토큰을 복사해서, 어딘가 보관해 두세요.

    https://callback.com/?code={token 값}&state=

    API 호출

    이후 API 호출은 공식 문서를 참고하면 됩니다.

     

    1. 블로그 정보 조회

    출력되는 블로그 정보

    ACCESS_TOKEN에 본인의 토큰 값을 입력해서 해당 node.js 코드를 실행시켜보면 본인의 블로그 정보가 출력됩니다.

     

    2. 글 목록 조회

    blogName 파라미터에 본인이 조회하기를 원하는 블로그 이름을 입력하면, 해당 블로그의 1 페이지 포스트들이 조회됩니다.

     

    3. 특정 글 조회

    출력되는 데이터가 이상하다

    특정 글 조회는 원하는 글의 ID값이 필요합니다.

    postId 파라미터에 원하는 글 ID값을 입력하고 조회하면 사진과 같은 결과가 출력됩니다.

     

    결과가 이상합니다. JSON 형태가 아닌 XML 형태로 출력됩니다.

    위의 다른 API를 호출한 경험을 보아 output을 파라미터에 집어넣지 않아 XML로 출력되는 것으로 추측하였습니다.

    output: "json"을 추가하여 다시 호출해 봅니다.

     

    정상적으로 JSON 형태로 출력되는 데이터

    정상적으로 JSON 형태로 결과가 출력되는 것을 확인할 수 있습니다.


    결론

    API를 사용하려 조사를 하니까, Tistory Open API가 현재 많은 관심을 받고있는 프로젝트라고 생각하기 힘들었습니다.

    하지만 개발자들을 위해 이렇게 API를 공개하는 것에 감사를 보내며, 해당 포스트가 앞으로 다양하게 API를 활용할 분들께 도움이 되었으면 좋겠습니다.

     

    감사합니다.


     

    반응형

    댓글

Designed by Tistory. Customed by MJ.