๊ตฌ๊ธ ์คํ๋ ๋์ํธ๋ฅผ ์ฌ์ฉํ ์ค ์๋ ๋ถ์ด๋ฉด ๋๊ตฌ๋ ํ ์ ์์ต๋๋ค!
1๋จ๊ณ. ํฐ์คํ ๋ฆฌ API๋ฅผ ์ฌ์ฉํ ์ ์๋๋ก ์ฑ์ ๋ฑ๋กํฉ๋๋ค.
ํฐ์คํ ๋ฆฌ API ์ฑ ๋ฑ๋ก ์ฌ์ดํธ : https://www.tistory.com/guide/api/manage/register
2๋จ๊ณ . ์ธ์ฆ ์ฝ๋ ๋ฐ๊ธ ๋ฐ๊ธฐ
๊ฐ์ด๋ : https://tistory.github.io/document-tistory-apis/auth/authorization_code.html
๋ณธ์ธ ํฐ์คํ ๋ฆฌ์ ๋ค์ด์์ ์๋ ๋งํฌ URL ์ฐฝ์ ์
๋ ฅํฉ๋๋ค.
https://www.tistory.com/oauth/authorize?client_id=๋ณธ์ธ๋ฐ๊ธID&redirect_uri=https://๋ณธ์ธํฐ์คํ ๋ฆฌURL&response_type=code&state=access-token
Client ID์ redirect_uri๋ ์์ ๋ฑ๋กํ ์ฑ์ ๋ณด์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค.
๋ณธ์ธ ํฐ์คํ ๋ฆฌ์์ ์ ๋งํฌ๋ฅผ ์ ์์ ์ผ๋ก ์ ๋ ฅํ๋ฉด ์ธ์ฆ์ฐฝ์ด ๋์จ ํ ํ๊ฐ ๋ฒํผ ํด๋ฆญ ์ ์๋ ๋งํฌ๊ฐ URL ์ ๋ ฅ์ฐฝ์ ๋ํ๋ฉ๋๋ค.
์ฐ๋ฆฌ์๊ฒ ํ์ํ ๊ฑด ์๋ ๋งํฌ์ authorizationCode์ ๋๋ค.
http://client.redirect.uri?code=authorizationCode&state=someValue
3๋จ๊ณ . access_token ๋ง๋ค๊ธฐ
- authorizationCode ์ ์ฌ์ฉํ์ฌ access token์ ๋ง๋ญ๋๋ค.
3-1. ์๋ก์ด chrome ์ฐฝ ๋์ฐ๋ฉด์ ๊ฐ๋ฐ์ ๋๊ตฌ ์ด๊ธฐ (์ค์ >๋๊ตฌ ๋๋ณด๊ธฐ>๊ฐ๋ฐ์๋๊ตฌ)
3-2. ์๋ ๋งํฌ ์
๋ ฅ ํ ์ํฐ
https://www.tistory.com/oauth/access_token?client_id='๋ณธ์ธ ID '&client_secret='๋ณธ์ธ screat' &redirect_uri=https://odaily.tistory.com&code=์์ ๋ฐ์ authorizationCode &grant_type=authorization_code
์์ ๊ฐ์ ์ฐฝ์ด ๋จ์ง๋ง ์ค๋ฅ๊ฐ ์๋๋ ์ ๊ฒฝ์ฐ์ง ์์๋ ๋๋ค. ๋ฌด์ํ๊ณ ๊ฐ๋ฐ์๋๊ตฌ์ [Network> Response]๋ฅผ ๋ณด๋ฉด access-toke ์ ๋ณด๊ฐ ์๋ค. ํด๋น ์ ๋ณด๋ฅผ ๋ณต์ฌํฉ๋๋ค.
- ๊ตฌ๊ธ ์คํ๋ ๋ ์ํธ๋ฅผ ํ๋ ์ด๊ณ ๋ฉ๋ด์์ ํ์ฅํ๋ก๊ทธ๋จ> App script๋ฅผ ํด๋ฆญํ์ฌ ์๋์์ค๋ฅผ ๋ถ์ธํ ์ ์ฅ ๋ฐ ์คํํฉ๋๋ค
- ์๋ ์์ค์์ ๋ณต์ฌํ accssToken ๊ฐ์ผ๋ก ์ ๊ฐ์ ์ฌ์ฉํฉ๋๋ค.
- blogName ์ odaily.tistory.com ๋๋ฉ์ธ์์ ๋งจ ์ odaily๋ฅผ ์ฌ์ฉํฉ๋๋ค. (๋ณธ์ธ ํฐ์คํ ๋ฆฌ ๋๋ฉ์ธ ํ์ฉ)
function getTistory(){
var accessToken = 'authorizationCode ์
๋ ฅํ๊ธฐ';
var url = "https://www.tistory.com/apis/post/list?access_token=" + accessToken + "&blogName=ํฐ์คํ ๋ฆฌ ๋๋ฉ์ธ ์์ด๋&output=json&page=1";
var response = UrlFetchApp.fetch(url);
var resData = response.getContentText();
resData = JSON.parse(resData);
Logger.log(resData);
var arrTitle = new Array();
var arrLink = new Array();
var arrInfo = new Array();
var arrDate = new Array();
for(var i = 0 ; i < 10 ; i ++ ){
arrTitle.push(resData.tistory.item.posts[i].title);
arrLink.push(resData.tistory.item.posts[i].postUrl);
arrDate.push(resData.tistory.item.posts[i].date)
}
arrInfo.push(arrTitle);
arrInfo.push(arrLink);
arrInfo.push(arrDate);
//์คํ๋ ๋์ํธ์ ์ธ๋ก๋ก ์ถ๋ ฅํ๊ธฐ ์ํด์
var transposed = Array.from({ length: arrTitle.length }, () => new Array(2).fill(0))
for (var o=0; o< arrInfo.length; o++) {
for (var v=0; v<arrInfo[0].length; v++) {
[transposed[v][o]] = [arrInfo[o][v]];
}
}
return transposed;
}
4๋จ๊ณ . ๊ตฌ๊ธ ์คํ๋ ๋์ํธ์์ ์ฌ์ฉ
์คํ๋ ๋ ์ํธ์์ =getTistory() ํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
์ด์ ํธ : ๋ค์ด๋ฒ ๋ด์ค, ๋ค์ ์น๊ฒ์ ๋ฆฌ์คํธ ๊ฐ์ ธ์ค๊ธฐ ๐ฐ
๋ค์ ํธ์ ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ๋ฆฌ์คํธ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค ๐๐ปโ๏ธ
๋๊ธ