[node.js 스팀봇 강좌] #7. steem.js를 이용하여 포스팅 조회하기

in #kr7 years ago

지난 연재

[node.js 스팀봇 강좌] #1. steem.js 라이브러리 이용하기
[node.js 스팀봇 강좌] #2. steem.js를 이용해서 보팅해보기
[node.js 스팀봇 강좌] #3. steem.js를 이용해서 포스팅 올리기
[node.js 스팀봇 강좌] #4. 인증키 등의 정보를 외부 파일에 저장하기
[node.js 스팀봇 강좌] #5. steem.js를 이용하여 댓글 달기
[node.js 스팀봇 강좌] #6. steem.js를 이용하여 송금하기


이번에는 스팀잇에 올라와 있는 포스팅을 태그를 기준으로 뽑아보고, 또 저자를 기준으로 뽑아보겠습니다.

어느 기준으로 포스팅을 조회하든지 그 결과는 동일한 형식으로 회신되며, javascript 또는 node.js의 기본적인 표현방식인 json의 형태로 데이터가 서버로부터 전달됩니다.

사실 포스팅을 조회하는 방법은 첫 번째 강좌의 계정 정보를 조회하는 것만큼이나 간단하지만, 조회한 결과에서 필요한 정보를 뽑아내는 부분에 프로그래밍 스킬이 조금 필요합니다.

먼저 태그를 기준으로 포스팅을 조회해 보겠습니다.

여기에 사용되는 steem.js의 함수는 다음과 같습니다.

https://github.com/steemit/steem-js/blob/master/doc/README.md#get-discussions-by-created

설명드릴 인자도 query도 1개 밖에 없습니다. 말그대로 조회를 위한 정보를 Json형태의 인자로 넘겨줘야 하는데, kr 태그에서 최근글 1개를 조회하는 query는 다음과 같습니다.

  • query : {"tag": "kr", "limit": 1}

한번의 함수 호출로 조회할 수 있는 포스팅의 개수는 100개(limit 값은 1~100 사이)이지만, 더 많은 포스팅을 조회하는 방법(편법?)도 있습니다.

바로 100개를 먼저 조회한 다음, 조회 결과 중 마지막 포스팅의 author와 permlink 정보를 이용하여 다음과 같은 query를 작성하여 동일한 함수를 재호출 하면 됩니다.

  • query: {"tag": "kr", "limit": 100, "start_author": "이전 조회 결과 중 마지막 author", "start_permlink": "이전 조회 결과 중 마지막 permlink"

1단계: 소스코드

2단계: 실행결과

실행결과로 전달받은 데이터는 javascript의 배열인 [] 괄호로 시작하며, 1개의 포스팅을 조회했기 때문에 {}로 시작하는 1개의 Json 정보가 표시되어 있는 것을 볼 수 있습니다.

조회결과에서 필요한 정보를 추출하는 것은 다음 강좌에서 좀 더 자세히 살펴볼 예정이며, 서두에서 밝힌 대로 저자를 기준으로 포스팅을 조회하는 실습을 이어서 진행합니다.

저자 기준으로 포스팅을 조회하는데 사용하는 steem.js 함수는 다음과 같으며, 함수의 동작에서 date 정보는 무시되는 것 같습니다.

https://github.com/steemit/steem-js/blob/master/doc/README.md#get-discussions-by-author-before-date

함수를 호출할때 사용하는 인자에 대해서 살펴보면 다음과 같습니다.

  • author: 조회하고자 하는 저자입니다.
  • startPermlink: 조회를 시작하는 기준이 되는 포스팅의 고유주소로 가장 최근의 글부터 조회할 경우에는 공란을 넣으면 됩니다.
  • beforeDate: 인자 명을 봐서는 조회를 시작하는 기준이 되는 날짜를 입력하는 것으로 생각되나 정확한 스펙은 알기가 힘들고, 일단은 아무 날짜나 javascript의 날짜 포맷에 맞추어 넣으면 무시하고 동작합니다. (무책임..ㅎㅎ)
  • limit: 한번에 조회하고자 하는 포스팅의 갯수로 앞에서 설명한 태그 기준 조회 함수와 마찬가지로 1~100 사이의 값을 넣으면 됩니다.

실습으로 제가 포스팅한 최근 2개의 글을 조회해 보도록 하겠습니다.

1단계 : 소스코드

2단계: 실행결과

다음 연재에서는 조회된 json형태의 포스팅 결과에 무슨 항목과 데이터가 포함되어 있는지 확인해보고, 그중에서 필요한 정보를 뽑는 방법에 대해 진행하겠습니다.

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.027
BTC 59410.96
ETH 2658.99
USDT 1.00
SBD 2.43