업비트(UPBIT) API - 나의 자산 호출하기
마스터욱
3
45
0
0
2018-06-30 02:49:00
업비트에서 드디어 개발 API 가 오픈했습니다.
뭐 API 가 딱히 없어도, 여태껏 시세정보는 몰래 가져오고 있었는데, 매수/매도가 가능한 API가 오픈한 것은 참으로 고마운 일입니다.
업비트 API는 JWT를 이용한 데이터전송을 사용하고 있습니다.
저도 이번 기회에 JWT 처음 알게 되었네요~
개발은 PHP를 이용해서 개발할 계획이기 때문에, 구글링으로 PHP 의 JWT 라이브러리를 검색해서 github 에서 다운받았습니다.
다운로드 주소
https://github.com/firebase/php-jwt
php JWT 사용방법
https://coderwall.com/p/8wrxfw/goodbye-php-sessions-hello-json-web-tokens
아래 소스코드는 제가 만든 업비트 내 계좌정보 가져오기 입니다.
삽질좀 했습니다.
JWT 사용방법과 CURL 의 header 에 토큰을 싫어서 전송하는 건 처음이라서 저도 조금 헤맸습니다~
- function get_my_account()
- {
- include_once "_JWT.php";
- $JWT = new JWT();
- $payload['access_key'] = UPBIT_ACCESS_KEY;
- $token = $JWT->encode($payload, UPBIT_SECRET_KEY);
- $url = "https://api.upbit.com/v1/accounts";
- "url" => $url,
- "Authorization: Bearer {$token}"
- )
- ));
- return $data;
- }
- function get_curl($param){
- //print_r($param);exit;
- #접속할 URL 주소
- #FALSE 를 설정하면 cURL는 서버 인증서의 유효성을 검사하지 않습니다.#다른 인증를 CURLOPT_CAINFO 옵션 지정하거나 CURLOPT_CAPATH 옵션 증명서 디렉토리를 지정합니다.
- #SSL 버젼 지정. 기본값은 2
- #curl_setopt ($ch, CURLOPT_SSLVERSION,1);
- #TRUE 를 설정하면 헤더의 내용을 출력합니다.
- #curl_setopt($ch, CURLOPT_HEADER, 1);
- #HTTP 요청에서 사용되는 "User - Agent :" 헤더의 내용.
- if($param['cookie']){
- #curl_close 호출 될 때 쿠키를 파일 이름으로 저장.
- #쿠키의 데이터를 http 헤더를 통해 보낸다.
- }
- #POST 로 데이터 전송.
- #TRUE 를 설정하면 HTTP POST를 수행합니다. POST는 application / x - www - form - urlencoded 식으로 이루어집니다. 이것은 일반적인 HTML 양식과 같은 형식입니다.
- if($param['post_data']){
- }
- if($param['header']){
- }
- #최대 실행 시간(초)
- #TRUE 를 설정하면 curl_exec () 의 반환 값을 문자열로 반환합니다. 일반적으로 데이터를 직접 출력합니다.
- return $result;
- }
아래는 결과입니다.
원화로 10만원 넣어둔게 나오는군요~ 헤헤
Array ( [0] => Array ( [currency] => KRW [balance] => 100000.19014065 [locked] => 0.0 [avg_krw_buy_price] => 0 [modified] => ) )
이건 매수중일때~ locked 값이 생성되어있네요~(비트코인 8만원치 매수걸어둔 상태입니다.)
Array ( [0] => Array ( [currency] => KRW [balance] => 19932.17614065 [locked] => 80068.014 [avg_krw_buy_price] => 0 [modified] => ) )
이건 비트코인 매수후의 데이터입니다.
데이터가 2개 리턴되네요.
Array ( [0] => Array ( [currency] => KRW [balance] => 19932.17614065 [locked] => 63854.241165 [avg_krw_buy_price] => 0 [modified] => ) [1] => Array ( [currency] => BTC [balance] => 0.00243 [locked] => 0.0 [avg_krw_buy_price] => 6669000 [modified] => ) )