create account

[node.js 스팀봇 강좌] #2. steem.js를 이용해서 보팅해보기 by minari

View this thread on: hive.blogpeakd.comecency.com
· @minari · (edited)
$11.74
[node.js 스팀봇 강좌] #2. steem.js를 이용해서 보팅해보기
###  지난 연재
[[node.js 스팀봇 강좌] #1. steem.js 라이브러리 이용하기](https://steemit.com/kr/@minari/node-js-1-steem-js)

---

이번에는 steem.js 라이브러리를 활용해서 포스팅에 보팅을 해보는 시간을 갖겠습니다.

처음에는 steem.js 라이브러리를 만든 사람이 하도 설명서를 불친절하게 만들어서 서운한 감이 없지 않았는데, 이런 저런 시도를 하다보니 이렇게 단순명료하게  api들을 구성했기 때문에 따로 메뉴얼이 없었구나라는 생각이 들었지요.

보팅도 지난 연재에서의 계정정보 조회와 마찬가지로 단순한 함수 한번 호출로 이루어지는데, steem.js의 홈페이지(https://github.com/steemit/steem-js/tree/master/doc#broadcast)에 나와있는 설명은 다음과 같습니다.

![](https://steemitimages.com/DQmNXsuvn3E8E8FhjcNKraSo1E8z3s164LKPtDiXbgg1AbY/image.png)

들어가는 변수들을 설명드리면 다음과 같습니다.

- wif : 보팅을 하는데 필요한 권한으로, 스팀잇 홈페이지 '지갑(wallet)'화면의 permission 탭을 선택하면 나오는 네가지 인증키 중 첫번째인 posting의 키값입니다. 바로 보이는 posting키값은 스팀잇 비밀번호처럼 생겼는데 가짜값이고  진짜 값은 항목 우측의 'show private key'버튼을 눌러야 나옵니다.
- voter: 본인의 아이디입니다.
- author: 보팅하는 대상 포스팅의 저자입니다.
- permlink: 보팅하는 대상 포스팅의 고유 주소로 포스팅 url의 가장 마지막 '/'이후 주소입니다. 예를 들어 https://steemkr.com/kr-market/@minari/4nmfol-kr-market 와 같은 링크에서는 '4nmfol-kr-market' 이부분이 permlink가 됩니다.
- weight: 보팅파워를 설정하는데 0~10000사이의 값을 입력하면 100으로 나눈 0~100 사이의 보팅이 됩니다. 통상 500스팀을 보유해야 보팅게이지가 나와서 0~100%사이를 선택하게 되는데, steem.js를 사용하면 누구라도 더 세분화된 보팅이 가능합니다. 

이와 같이 필요한 입력정보를 모두 입력한 node.js파일(예를 들면 test.js)를 편집기 또는 커맨드창에서 실행시키면 수초간의 처리시간 후에 보팅이 완료되는 것을 보실 수 있습니다.

### 소스코드
![](https://steemitimages.com/DQmVafjH6AbmjHpdzN43G6WMv9aWj2WRBotZ7Q21oG5Jvdh/image.png)
소스코드 중 wif에는 본인의 인증키를 넣어야 하며, 정보보안을 위해 '*'로 표시하였습니다.

### 실행결과 (편집기 log)
![](https://steemitimages.com/DQmaGhQHxjtDdsZT1WH4eUft5Nmd1RnqVobBHBCLZjXtPFD/image.png)

### 실행결과 (포스팅에 보팅된 모습)
![](https://steemitimages.com/DQmR4q2UsuqWL1327uQ8fjMBfCMhkqaRWRGS2hPjUJuyT9A/image.png)

정말 간단한 몇 줄로도 보팅이 가능한 것을 확인하였습니다. ^^

게다가 자바스크립트도 굉장히 매력적인 언어입니다.
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,
properties (23)
authorminari
permlinknode-js-2-steem-js
categorykr
json_metadata{"tags":["kr","kr-dev","kr-hobby","steemjs","programming"],"image":["https://steemitimages.com/DQmNXsuvn3E8E8FhjcNKraSo1E8z3s164LKPtDiXbgg1AbY/image.png","https://steemitimages.com/DQmVafjH6AbmjHpdzN43G6WMv9aWj2WRBotZ7Q21oG5Jvdh/image.png","https://steemitimages.com/DQmaGhQHxjtDdsZT1WH4eUft5Nmd1RnqVobBHBCLZjXtPFD/image.png","https://steemitimages.com/DQmR4q2UsuqWL1327uQ8fjMBfCMhkqaRWRGS2hPjUJuyT9A/image.png"],"links":["https://steemit.com/kr/@minari/node-js-1-steem-js","https://github.com/steemit/steem-js/tree/master/doc#broadcast","https://steemkr.com/kr-market/@minari/4nmfol-kr-market"],"app":"steemit/0.1","format":"markdown"}
created2017-08-24 08:58:00
last_update2017-08-29 00:22:30
depth0
children4
last_payout2017-08-31 08:58:00
cashout_time1969-12-31 23:59:59
total_payout_value8.972 HBD
curator_payout_value2.770 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,672
author_reputation18,256,774,154,134
root_title"[node.js 스팀봇 강좌] #2. steem.js를 이용해서 보팅해보기"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id12,718,625
net_rshares2,917,471,841,578
author_curate_reward""
vote details (51)
@holl.boll ·
Amezing story
properties (22)
authorholl.boll
permlinkre-minari-node-js-2-steem-js-20170824t101034622z
categorykr
json_metadata{"tags":["kr"],"app":"steemit/0.1"}
created2017-08-24 10:10:39
last_update2017-08-24 10:10:39
depth1
children0
last_payout2017-08-31 10:10:39
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length13
author_reputation-30,357,862,109
root_title"[node.js 스팀봇 강좌] #2. steem.js를 이용해서 보팅해보기"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id12,723,489
net_rshares0
@rkdals4167 · (edited)
그럼 조건을 줘서 한명의 대상이 아닌 여러 대상에게 보팅하게끔 만들려면
author부분에 조건을 주어 만들어야하나요?
아니면 다른부분을 새롭게 추가시켜 만들어야 하나요..?
properties (22)
authorrkdals4167
permlinkre-minari-node-js-2-steem-js-20170824t131321516z
categorykr
json_metadata{"tags":["kr"],"app":"steemit/0.1"}
created2017-08-24 13:13:03
last_update2017-08-24 13:14:03
depth1
children1
last_payout2017-08-31 13:13:03
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length96
author_reputation1,163,971,635,600
root_title"[node.js 스팀봇 강좌] #2. steem.js를 이용해서 보팅해보기"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id12,737,709
net_rshares0
@minari ·
여러명의 대상을 배열에 넣고, 돌아가면서 보팅하면 될꺼에요.
properties (22)
authorminari
permlinkre-rkdals4167-re-minari-node-js-2-steem-js-20170825t000929978z
categorykr
json_metadata{"tags":["kr"],"app":"steemit/0.1"}
created2017-08-25 00:09:30
last_update2017-08-25 00:09:30
depth2
children0
last_payout2017-09-01 00:09:30
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length33
author_reputation18,256,774,154,134
root_title"[node.js 스팀봇 강좌] #2. steem.js를 이용해서 보팅해보기"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id12,788,849
net_rshares0
@yjc638 ·
이해가 올듯 하면서도 어렵네여....
👍  
properties (23)
authoryjc638
permlinkre-minari-node-js-2-steem-js-20180107t093211253z
categorykr
json_metadata{"tags":["kr"],"app":"steemit/0.1"}
created2018-01-07 09:32:12
last_update2018-01-07 09:32:12
depth1
children0
last_payout2018-01-14 09:32:12
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length20
author_reputation7,100,521,338,522
root_title"[node.js 스팀봇 강좌] #2. steem.js를 이용해서 보팅해보기"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id27,721,496
net_rshares742,710,762
author_curate_reward""
vote details (1)