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 방식을 통해 블로그에 글을 작성해보도록 하겠습니다
'사용해보기 > express를 이용한 tistory open api 연동' 카테고리의 다른 글
tistory openapi를 이용한 post 방식 연동 (0) | 2023.05.11 |
---|---|
code로 Access Token 발급받기 (0) | 2023.05.09 |
인증 요청 및 Authentication code 발급 (0) | 2023.05.08 |
tistory 연동을 위한 준비사항입니다. (0) | 2023.05.08 |