스팀잇 태그 목록 모두 가져오기
스팀잇을 이용해서 뭔가 끄적이고 싶긴 한데, 시간이 그다지 많지 않네요.
요즘은 저도 대세 언어인 자바스크립트에 많은 시간을 할애 하고 있습니다.
프런트 엔드는 20대, 백엔드는 3,40대, 50대 이상은 Perl 과 C 를 쓴다는데,
저는 20대인가 봅니다. ^^
스팀잇은 API 가 잘 되어있지 않은 것 같아요.
구글링이나 스택 오버플로우의 도움이 무척 필요합니다.
스팀잇 내에도 API 를 가지고 이것저것 하는 포스팅이 많으니 검색을 활용해 보시기 바랍니다.
기본적으로 필요한 도구
- Node 를 깔고
- npm install steem 까지는 하셔야 합니다.
- 여기에 Reference 가 있습니다. https://github.com/steemit/steem-js
코드
- steem.api.getTrendingTags 를 사용합니다. 첫번째 인자는 태그명으로 "여기부터 가져와" 입니다.
- 두번째 인자는 가져올 갯수입니다. 100개까지 가능할 겁니다. 여기서는 11개를 읽습니다. 첫번째는 "여기부터"라 이미 이전에 읽은 것이므로 패스
- 세번째 인자는 콜백 함수인데, 여기에 설명이 되어있습니다.
https://steemit.com/kr/@inspiredjw/javascript-callback-function (Thanks to @inspiredjw ) - 11개를 가져오고 마지막 태그명을 이용해서 거기부터 또 얻어오는 방식으로 동작합니다.
- 콜백 함수에서 재귀를 사용합니다. *
var steem = require('steem');
var last_tag = "";
var tags = [];
var FETCH_COUNT = 10;
(function run() {
steem.api.getTrendingTags(last_tag, FETCH_COUNT + 1, function(err, result) {
if ( typeof result === "undefined") {
console.log("---end");
// tags.forEach(function(e) {
// console.log(e);
// });
return;
}
for (var i = 1; i < FETCH_COUNT + 1; i++) {
tags.push(result[i].name);
console.log(result[i].name);
}
last_tag = result[FETCH_COUNT].name;
run();
});
})();
* 콜백에서 재귀호출을 하는데 이거 안하게 하는 방법에 대해서 이야기해보는 것도 좋을 것 같습니다.
이 유익한 기사를 우리와 공유해 주셔서 감사합니다.
Congratulations @kdj! You have completed some achievement on Steemit and have been rewarded with new badge(s) :
Award for the number of upvotes
Click on any badge to view your own Board of Honor on SteemitBoard.
For more information about SteemitBoard, click here
If you no longer want to receive notifications, reply to this comment with the word
STOP
제가 필요로 하는 내용을 올리셨네요 ㅎㅎ 감사합니다~
다양한 태그가 있군요. ㅎ
차차 공부하기 위해 눈여겨 보고 갑니다.