코인원 API 프로그래밍 - 1steemCreated with Sketch.

in #kr6 years ago

5.jpg

코인원 API 문서

코인원 API 문서는 빗썸에 비하여 상당히 체계적으로 잘 정리 되어있다. 필자의 설명이 필요 없을 정도로...

필자가 만든 코인원 API 소스코드

import httplib2
import time
import simplejson as json
import base64
import hmac
import hashlib


# 전역변수 설정
ACCESS_TOKEN = '자신이 받은 Access Token 입력'
SECRET_KEY = '자신이 받은 Secret Key 입력'

def get_encoded_payload(payload):
  payload[u'nonce'] = int(time.time()*1000)

  dumped_json = json.dumps(payload).encode()
  encoded_json = base64.b64encode(dumped_json)
  return encoded_json

def get_signature(encoded_payload, secret_key):
  signature = hmac.new(secret_key.upper().encode(), encoded_payload, hashlib.sha512);
  return signature.hexdigest()

def get_response(url, payload):
  encoded_payload = get_encoded_payload(payload)
  headers = {
    'Content-type': 'application/json',
    'X-COINONE-PAYLOAD': encoded_payload,
    'X-COINONE-SIGNATURE': get_signature(encoded_payload, SECRET_KEY)
  }
  http = httplib2.Http()
  response, content = http.request(url, 'GET', headers=headers, body=encoded_payload)
  return content

def post_response(url, payload):
  encoded_payload = get_encoded_payload(payload)
  headers = {
    'Content-type': 'application/json',
    'X-COINONE-PAYLOAD': encoded_payload,
    'X-COINONE-SIGNATURE': get_signature(encoded_payload, SECRET_KEY)
  }
  http = httplib2.Http()
  response, content = http.request(url, 'POST', headers=headers, body=encoded_payload)
  return content

def coin_balance():
    url = 'https://api.coinone.co.kr/v2/account/balance/'
    payload = {
        "access_token": ACCESS_TOKEN,
    }
    content = post_response(url, payload)
    return content

def coin_order_book(currency):
    url = 'https://api.coinone.co.kr/orderbook/?currency={}&format=json'.format(currency)
    payload = {
        "access_token": ACCESS_TOKEN,
    }
    content = get_response(url, payload)
    return content

def coin_limit_buy(price, qty, currency):
    url = 'https://api.coinone.co.kr/v2/order/limit_buy/'
    price = coinone_price(price)#hasworld_debug
    payload = {
        "access_token": ACCESS_TOKEN,
        "price": price,
        "qty": qty,
        "currency": currency
    }
    content = post_response(url, payload)
    return content

def coin_limit_sell(price, qty, currency):
    url = 'https://api.coinone.co.kr/v2/order/limit_sell/'
    price = coinone_price(price)#hasworld_debug
    payload = {
        "access_token": ACCESS_TOKEN,
        "price": price,
        "qty": qty,
        "currency": currency
    }
    content = post_response(url, payload)
    return content

필자는 코인원 API 코드를 하나의 파일에 만들었다.
각 API의 사용법은 다음 글에 소개를 하겠다.

Sort:  

첨부된 코드에서
"price = coinone_price(price)#hasworld_debug"는 삭제해 주시길 바랍니다.

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63811.50
ETH 2617.28
USDT 1.00
SBD 2.77