๊ตฌ๊ธ ์คํ๋ ๋์ํธ๋ฅผ ์ฌ์ฉํ ์ค ์๋ ๋ถ์ด๋ฉด ๋๊ตฌ๋ ํ ์ ์์ต๋๋ค!
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() ํจ์๋ฅผ ํธ์ถํฉ๋๋ค.
์ด์ ํธ : ๋ค์ด๋ฒ ๋ด์ค, ๋ค์ ์น๊ฒ์ ๋ฆฌ์คํธ ๊ฐ์ ธ์ค๊ธฐ ๐ฐ
[์นด์นด์ค๋ทฐ] ๋ณด๋ ์๋ ๋ฐํ 1๋จ๊ณ. ๊ตฌ๊ธ ์ฑ ์คํฌ๋ฆฝํธ๋ก ๋ค์ด๋ฒ ๋ด์ค, ๋ค์ ์น๋ฌธ์ ๊ฐ์ ธ์ค๊ธฐ(OPEN AP
์นด์นด์ค๋ทฐ ์๋๋ฐํ์ ํ๋ ค๋ค ๋ณด๋ ์ด๋ค ์ฝํ ์ธ ๋ฅผ ๊ฐ์ ธ์์ผ ํ ์ง ๊ณ ๋ฏผํ๋ค. ๊ธฐ์กด๊น์ง ์๋์ผ๋ก ํ๋ ๋ณด๋ ๋ฐํ์ ํธ๋ฆฌํ๊ฒ ํ๊ณ ์ถ์๋ค. ๊ทธ๋์ ์๋ ๋ฐํ์ ์๊ฐํด๋ณด๊ธฐ๋ก ํ์๋ค. 1. ์ฝํ ์ธ : ๋ค
odaily.tistory.com
๋ค์ ํธ์ ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ๋ฆฌ์คํธ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค ๐๐ปโ๏ธ
[์นด์นด์ค๋ทฐ] ๋ณด๋ ์๋ ๋ฐํ 2๋จ๊ณ. ๊ตฌ๊ธ ์ฑ ์คํฌ๋ฆฝํธ๋ก ๋ณธ์ธ ๋ค์ด๋ฒ ๋ธ๋ก๊ทธ ํฌ์คํ ๊ธ ๊ฐ์ ธ์ค๊ธฐ(OP
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ๋ ์๊ธฐ ๋ธ๋ก๊ทธ ์ฝํ ์ธ ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ ๋ง๊ณ ์ ์ฒด ๋ธ๋ก๊ทธ์์ ํน์ ๋จ์ด๋ฅผ ๊ฐ์ง๊ณ ์์นํ๋ API๊ฐ ์๋ ๊ฒ์ ํ์ธํ์๋ค. ์ฐ์ ๋ด ๋ชฉ์ ์ ๋์ ๋ธ๋ก๊ทธ ๋ฆฌ์คํธ๋ฅผ ์ฑ๊ฒจ์ค๋ ๋ฐฉ๋ฒ์ด์
odaily.tistory.com
๋๊ธ