[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형태의 포스팅 결과에 무슨 항목과 데이터가 포함되어 있는지 확인해보고, 그중에서 필요한 정보를 뽑는 방법에 대해 진행하겠습니다.