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

in #kr7 years ago (edited)

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

네 그렇습니다. 뭐 물론 내부에는 복잡한 경제와 자신들의 사정이 있겠으나 현재 스팀잇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!!

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

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

Sort:  

스팀 api 가 있었군요. 시간날때 간단한거라도 구현해보면 재미있을것 같네요.

작성한 글이 없으셔서 ㅠㅠ 팔로우 및 현재 댓글에 업보트했급니다. 이걸로 요새 많은 분들이 서비스 만드시는것 같더라구요!!

오아 저런게 있네여 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 신기방기해버렷따리... 시간 ㄱㅊ으시면 제블로그에서 노래듣구가때연!!!

이벤트라 하시니 일단 보팅하고갑니다^^

반갑습니다 팔로우 및 보팅 드렸습니다:) 차근차근 코드를 배워나가시죠 ㅋㅋ

저도 스팀잇 전용 앱 브라우저를 만드느라, API를 자주 들여다보고 있습니다. 아직 문서가 부실해서 힘들기는 하지만, 하나하나 헤쳐가보려구요. 팔로했습니다~!

팔로우 및 최근글에 업보트했급니다 :) 스팀잇 브라우저라니... 어떤 모습일지 상상이 안가네요 프로토타입 개발 중이신가요?

관심 가져주셔서 감사합니다! 프로토타입보다는 릴리즈 상태에 가깝게 개발 중입니다. 조만간 선 보이겠습니다~!

알려주신 사이트 좋네요
최근에 node.js 알게되서 집 컴퓨터에 설치해서 이것저것해보고 포스팅한 적도 있었거든요
이 사이트에서 하면 굳이 설치안하고도 실습이 가능하겠어요 ㅎㅎ
제가 직접해보면 알겠지만 혹시 저 사이트에서 제가 만든 스트립트를 서비스처럼 돌릴 수도 있나요? 아마도 그렇게 해픈 서비스를 제공하진 않을듯하지만 혹시나해서요 ㅎㅎ
팔로우&보팅하고 갑니다~:)

넵 저도 팔로우 보트 했습니다~ 감사해요!!. 음 만드신 스크립트를 테스트 하는 용도는 괜찮은데 서비스를 제공할 정도는 아닙니다 ㅎㅎ 보안이나 응답속도 및 여러가지 제약 조건이 있어서... 어쩌면 그냥 배치성 작업에는 가능 할 것 같군요.. 허나 일반적으로는 진짜 말 그대로 단순히 돌려보고 결과 확인하는데 사용 합니다!

역시 그렇군요 ㅎㅎ 그래도 별도 구축없이 node.js 코드를 돌려볼 수 있으니 좋네요~:)

ㅋㅋㅋㅋ 문외한이라 읽어봐도 잘 모르겠네요~ 아무튼 가즈아~!!

팔로우 및 업보트 드렸습니다~ 아 저렇게 모든 정보를 조회할수 있구나 정도만 아셔도 충분히 도움될거에요 ~:)

참 신기하네요, 서비스가 어떻게 개발되는지 지켜보며 응원하겠습니다ㅎㅎ

팔로우 및 가입인사글에 업보트 드렸습니다 스팀잇에 오신걸 환영합니다 !!

개발자분들 응원합니다.ㅎ

내일 이벤트에 참석하겠습니다 응원 감사합니다 :) 팔로우 및 최근글에 업보트드렸습니다

아직 어색한게 많네요!! 코드들도 어색어색 ..ㅎㅎ
업보트하고 갑니다~!!

오늘보고 내일보고 모레도 보고... 하다보면 익숙해질 날이 오지 않을까요? 팔로우 및 보팅 드렸습니다!

스팀에는 정말 많은게 있군요. 늘 새롭게 뭐가 만들어지는 것 같아요 보팅파워 40%대지만 꾸욱하고 아낌없이 하고 팔로잉갑니다.^^

근데 조만간 제공 안할것 같은 느낌도 들고 ㅠㅠ 약간 걱정이네요 저도 팔로잉 및 최근 게시글에 보트 드려습니다~

팔로잉, 보팅 감사합니다^^

Coin Marketplace

STEEM 0.22
TRX 0.26
JST 0.039
BTC 95444.49
ETH 3354.43
USDT 1.00
SBD 3.15