tistory openapi를 이용해서 code를 얻고 Access Token 발급 받는 것까지 진행했습니다. 이어서 access tokent을 이용해서 openapi에서 제공하는 블로그나 카테고리 정보를 얻거나 블로그에 글 작성, 댓글 작성등의 데이터 보내기를 수행할수 있습니다.
이번에는 데이터를 얻는 방법을 알아보도록 하겠습니다.

 

블로그 정보 · GitBook (tistory.github.io) 

를 이용해서 블로그 정보를 얻어보도록 하겠습니다. 

문서에 있는방법으로 데이터를 얻기위해서는 axios.get 방식을 사용했습니다. 그리고 페이지 이동을 위해 menu변수를 추가했습니다. 참고로 code와 access token을 얻은 후 /get/blog/info를 클랙해야 데이터를 얻어오는게 가능합니다.

 

const output='json';

app.get('/get/blog/info', async (req, res) => {
  const loc = `https://www.tistory.com/apis/blog/info?
  access_token=${access_token}
  &output=${output}`;

  let menu = `<a href=/>홈</a>|<a href=/set_code>로컬에코드입력</a>|<a href="/get/blog/info">블로그정보얻이</a>`;
  let view_html = `${menu}`;

  try{
    const awaitRes = await axios.get(loc);
    console.log( awaitRes.data );

    const dataToString = JSON.stringify( awaitRes.data );
    view_html += `${dataToString}`;
  }catch(error){console.error(error);}

  res.send(`${view_html}`);
});

app.get('/get_token', async (req, res) => {
  const tcode = req.query.code;
  code = tcode; //전역변수에 추가

  const loc = `https://www.tistory.com/oauth/access_token?
  client_id=${client_id}
  &client_secret=${client_secret}
  &redirect_uri=${redirect_uri}
  &code=${code}
  &grant_type=authorization_code`;

  let menu = `<a href=/>홈</a>|<a href=/set_code>로컬에코드입력</a>|<a href="/get/blog/info">블로그정보얻이</a>`;

  try{
    const awaitRes = await axios.get(loc);
    access_token = awaitRes.data.access_token;
  }catch(error){console.error(error);}

  const view_html = `${menu} ${access_token}`;
  res.send(`${view_html}`);
});

토큰을 얻은 상태의 실행결과입니다. 

토큰을 얻고 "블로그정보얻기"를 클릭한 상태입니다.

openapi사용 메뉴과 같은 정보가 조회됩니다.

바로 category 정보를 얻어보도록 하겠습니다.

카테고리 · GitBook (tistory.github.io) 

https://www.tistory.com/apis/category/list?
  access_token={access-token}
  &output={output-type}
  &blogName={blog-name}  <--- 블로그 정보에서 얻은 name 항목입니다

https://a3040.tistory.com/  이 주소의 경우 blogName = "a3040" 입니다.

app.get('/apis/category/list', async (req, res) => {
  const loc = `https://www.tistory.com/apis/category/list?access_token=${access_token}&output=${output}&blogName=a3040`;

  let menu = `<a href=/>홈</a>|<a href=/set_code>로컬에코드입력</a>|<a href="/get/blog/info">블로그정보얻기</a>|<a href="/apis/category/list">카테고리정보얻기</a>`; 
  let view_html = `${menu}`;

  try{
    const awaitRes = await axios.get(loc);
    console.log( awaitRes.data );

    const dataToString = JSON.stringify( awaitRes.data );
    view_html += `${dataToString}`; 
  }catch(error){console.error(error);}

  res.send(`${view_html}`);
});

데이터를 get으로 얻는 방식은 blog 정보 얻는 방식과 동일합니다. 수신후 처리방식도 동일합니다.블로그 글 관련, 댓글 관련 정보 등도 api에서 요구하는 변수를 더 추가하고 동일한 방법으로 얻을 수 있습니다. 카테고리얻기를 실행한 결과입니다.

tistory_openapi/ex3 at master · a3040/tistory_openapi · GitHub

다음 글에서는 axios의 post 방식을 통해 블로그에 글을 작성해보도록 하겠습니다

+ Recent posts