[SteemAPI][보팅 이벤트] Node.js Steem API - 1

스팀잇은 아낌없이 주는나무...

네 그렇습니다. 뭐 물론 내부에는 복잡한 경제와 자신들의 사정이 있겠으나 현재 스팀잇API 는 말 그대로 아낌없이 주는 나무입니다. 거의 모든 정보를 조회할수 있습니다 ( 비밀번호 빼고... ). 가입자 수, 사용자 정보, 계좌 정보 까지 개발자라면 쉽게 조회해 올 수 있어요. 어떻게 하는지 간단히 적어 보겠습니다.

기본 세팅

node.js 가 가능한 환경 이어야 합니다만... 브라우저에서 간단히 테스트 해 볼 수 있습니다.
우선 https://npm.runkit.com/steem 접속 고고

계정 정보를 얻어보자

npm runkit 페이지에 접속 하면

스크린샷 2018-03-23 오전 7.47.17.png

처럼 보일 것입니다. 아 물론 저기 안에 있는 코드는 제가 넣은 것이고 아마 첫줄만 있을거에요.

그럼 아래 코드를 복붙해서 넣어봅니다.

var steem = require("steem")

steem.api.getAccounts(['steemit'], function(err,results){
    const account = results[0];
    console.log(account);
    console.log(account.savings_balance);
});

그리고 아래에 run 버튼 클릭!! 하면 잠시 후 결과가 나옵니다.

코드의 내용인 즉슨, [스팀잇 공식 API 를 사용해서 @steemit 계정 정보를 가져오고, savings_balance 를 출력해라] 라는 뜻인데요.
잔고가 어마무시하네요 1천만 스팀이면 가격이 약 200억인가요? ㄷㄷ

잔고 이외에도 여러가지 정보가 account 라는 객체에 있습니다. 좀 복잡하지만 살펴볼까요?

{
  "id": 28,
  "name": "steemit",
  "owner": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5tfrdPG1Ycjwa9FuBUueDFFyygndBLXdVEEs2c9eRKScnFk6vM",
        1
      ],
      [
        "STM71f6yWztimJuREVyyMXNqAVbx1FzPVW6LLXNoQ35dHwKuszmHX",
        1
      ],
      [
        "STM7U3ymhUTuKME72dpdpQkdQvh722gTLjKBKtmKQPPWgtkr418Nf",
        1
      ]
    ]
  },
  "active": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5832HKCJzs6K3rRCsZ1PidTKgjF38ZJb718Y3pCW92HEMsCGPf",
        1
      ],
      [
        "STM7Q2rLBqzPzFeteQZewv9Lu3NLE69fZoLeL6YK59t7UmssCBNTU",
        1
      ]
    ]
  },
  "posting": {
    "weight_threshold": 1,
    "account_auths": [],
    "key_auths": [
      [
        "STM5jZtLoV8YbxCxr4imnbWn61zMB24wwonpnVhfXRmv7j6fk3dTH",
        1
      ],
      [
        "STM7xVFaqi8RxhWKZwuLA2bKrAiQmhnrbgvw4e2ChAsKYQbPjqUq2",
        1
      ],
      [
        "STM83dmDkQcZU9X8MWcxsTztSyutE6udrb55PvYgu7RLzStaoAt67",
        1
      ]
    ]
  },
  "memo_key": "STM5jZtLoV8YbxCxr4imnbWn61zMB24wwonpnVhfXRmv7j6fk3dTH",
  "json_metadata": "",
  "proxy": "",
  "last_owner_update": "2017-03-16T21:17:51",
  "last_account_update": "2017-03-16T23:10:36",
  "created": "2016-03-24T17:00:21",
  "mined": true,
  "owner_challenged": false,
  "active_challenged": false,
  "last_owner_proved": "1970-01-01T00:00:00",
  "last_active_proved": "1970-01-01T00:00:00",
  "recovery_account": "steem",
  "last_account_recovery": "1970-01-01T00:00:00",
  "reset_account": "null",
  "comment_count": 0,
  "lifetime_vote_count": 0,
  "post_count": 1,
  "can_vote": true,
  "voting_power": 9950,
  "last_vote_time": "2016-12-04T23:10:57",
  "balance": "0.005 STEEM",
  "savings_balance": "11006644.632 STEEM",
  "sbd_balance": "8578.620 SBD",
  "sbd_seconds": "4173862606227",
  "sbd_seconds_last_update": "2018-03-21T09:07:27",
  "sbd_last_interest_payment": "2018-03-15T17:58:24",
  "savings_sbd_balance": "0.000 SBD",
  "savings_sbd_seconds": "0",
  "savings_sbd_seconds_last_update": "1970-01-01T00:00:00",
  "savings_sbd_last_interest_payment": "1970-01-01T00:00:00",
  "savings_withdraw_requests": 0,
  "reward_sbd_balance": "0.000 SBD",
  "reward_steem_balance": "0.000 STEEM",
  "reward_vesting_balance": "0.000000 VESTS",
  "reward_vesting_steem": "0.000 STEEM",
  "vesting_shares": "90039851836.689703 VESTS",
  "delegated_vesting_shares": "0.000000 VESTS",
  "received_vesting_shares": "0.000000 VESTS",
  "vesting_withdraw_rate": "0.000000 VESTS",
  "next_vesting_withdrawal": "1969-12-31T23:59:59",
  "withdrawn": 0,
  "to_withdraw": 0,
  "withdraw_routes": 0,
  "curation_rewards": 0,
  "posting_rewards": 3548,
  "proxied_vsf_votes": [
    "26684842459",
    0,
    0,
    0
  ],
  "witnesses_voted_for": 0,
  "average_bandwidth": 214996934,
  "lifetime_bandwidth": "48395000000",
  "last_bandwidth_update": "2018-02-16T03:11:00",
  "average_market_bandwidth": 3419863046,
  "lifetime_market_bandwidth": "178560000000",
  "last_market_bandwidth_update": "2018-02-01T19:12:24",
  "last_post": "2016-03-30T18:30:18",
  "last_root_post": "2016-03-30T18:30:18",
  "vesting_balance": "0.000 STEEM",
  "reputation": "12944616889",
  "transfer_history": [],
  "market_history": [],
  "post_history": [],
  "vote_history": [],
  "other_history": [],
  "witness_votes": [],
  "tags_usage": [],
  "guest_bloggers": []
}

약간은 보기 힘들 수 있더라도 각각이 의미하는 바 이름이 지어져 있으니 주의깊게 보면 여러가지를 볼 수 있을 것입니다. 잔고, 명성, 투표 등등 여러가지 흥미로운 정보가 많고 이런 것을 이용해서 써드파티 서비스가 나올 수 있다고 생각합니다.

저도 스팀잇이 제공 하는 API 를 사용하여 새로운 서비스를 개발 하고 있습니다. (힌트는 제 소개에..) 어느정도 완성 된다면 서비스를 개발 하는 데 필요한 노하우와 팁 들을 게제 할 예정이니 팔로우 하셔서 꼭 도움 받으셨으면 좋겠습니다. ^^

스팀API 공식 문서

위에서 말씀 드린 계정 정보를 가져 오는 API 이외에도 여러가지 API 를 스팀잇 에서 제공하고 있습니다.

https://developers.steem.io/

문서를 살펴 보시면

  • 태그
  • 디스커션(스팀잇 에서 포스트와 댓글을 하나의 디스커션 이라는 단위로 취급합니다),
  • 블락 정보와 카테고리
  • 마켓 정보
  • 컨텐츠 정보
  • 증인정보
  • 송금

등등 문서화가 잘 되어 있...있...지 않습니다 아직은 ㅠㅠ
더군다나 문서에 없는 API 들도 상당히 많습니다. 다음에는 이런 API 들을 사용 하는 팁을 알려드릴께요

처음으로 글을 써보려니 약간 뒷심이 딸려서... 우선 여기에서 마무리짓고 다음 편에서는 각각 API 에 대해서 좀더 이야기 하겠습니다.


여기서 잠시 보팅 이벤트 도 진행 해 보려고 하는데요!! ( 다른 분들 하시는거 보니 재밌어 보이는군요. )
큰맘먹고 오늘 스팀파워를 질렀습니다(중요). 글도 썼겠다 파워도 있겠다!! 해서 흐므으으읏한 마음으로

참여 방법


  • @kws4679 계정 팔로우
  • 현재 글에 upvote!!

하면 제가 일일이 확인해서 맞팔 & 맞보트 해 드리겠습니다.

스팀잇을 기반으로 한 많은 서비스가 개발 되길 기원하며 부족한 첫번째 글을 마무리 짓겠습니다.
봐 주셔서 감사합니다!

H2
H3
H4
3 columns
2 columns
1 column
Join the conversation now