Telegram Bot2017. 6. 26. 22:54

이전 포스팅에서 python으로 Bittrex wrapper 라이브러리를 이용해 Bittrex API를 사용했다.

이번 포스팅은 이를 이용하여 telegram 봇으로 특정 코인의 가격을 알려주는 기능을 만들어 보자.


우선 telegram bot과 관련된 내용은 이전 포스팅을 참고하길 바라며, 이번 포스팅에서는 다루지 않는다.


[그림 1] Bittrex API 문서


Bittrex API 문서를 내려보면 [그림 1] 부분을 확인할 수 있다.

①을 보면 Request 예제가 있다. 주소창에 ①을 넣으면 결과로 ②를 확인할 수 있다.

②에서 여러 정보들 중 현재 시장가격을 확인할 수 있다.

이 Request 예제를 활용할 수 있는 함수가 있는지 python wrapper 코드를 찾아보자.

[그림 2] bittrex.py Bittrex 클래스 함수 get_market_summaries()


코드를 확인해 본 결과 [그림 1]의 ① 을 이용하는 함수는 정의되어 있지 않고 get_market_summaries() 함수만 정의되어 있다. 이 함수의 기능을 읽어보면 마켓 전체의 정보를 가져온다.

이 함수를 이용해 원하는 코인의 정보를 얻을 수 있지만, 전체 정보에서 찾아내는 것보다 [그림 1]의 Request 를 이용하는 것이 더 좋아 보인다.

* for문을 돌려 찾아내는 것보다 한번의 요청으로 원하는 데이터를 얻어오는 게 더 빠를 것 같다.


이를 인지한 상태에서 [그림 1]의 결과를 다시 보면 다음과 같다.

[그림 3] [그림 1]의 결과로 얻는 정보


[그림 3]에서 확인할 수 있는 정보들 중에 Last 부분이 현재 시장가이다. 하지만 단위가 BTC 단위이기 때문에 가격을 인지하는 것이 쉽지가 않다. 따라서 달러로 변환시켜 달러가격으로 표시하도록 하자.


[그림 4] BTC의 달러 가격 확인


Bittrex에서는 BTC, ETH, USDT를 기준으로 가격을 각각 표시를 하며, 각 기준으로 거래할 수 있는 코인의 종류가 모두 다르다.

BTC는 USDT로 거래할 수 있는 코인이기 때문에 달러 가격을 확인할 수 있다.

[그림 4]의 Last 부분이 바로 현재 BTC의 달러 가격이다.


지금까지 확인한 정보들을 가지고 만든 코드는 다음과 같다.


bittrex_telbot.py


위 코드는 bittrex wrapper 라이브러리를 참고하여 작성했으며, 이 코드의 기능은 60초마다 BTC 코인( 비트코인 )과 EDG( 엣지리스 ) 코인의 가격을 텔레그램 봇으로 보내준다.


지금까지 특정 코인의 가격을 받아보는 텔레그램 봇을 만들어봤다.

Bittrex API와 python wrapper 라이브러리를 참고하면 더 많은 기능을 추가할 수 있다.

Posted by Imp3rio