구글스프레드시트를 이용하여 거래소 실시간 가격 가져오는 API를 만들어보자 1탄

in #api7 years ago (edited)

안녕하세요.

오늘은 거래소 api를 가장 쉽게 활용할 수 있는 방법을 소개해 드릴까 합니다.

사실 api를 이용하려면 안드로이드 앱이라던지 사이트를 제작해야하는데 이건 화면도 개발해야하고, 코드도 짜야해서 생각보다 시간이 많이 들어갑니다.

하지만 구글 스프레드시트를 사용하면 매우 간단하게 api를 구현할 수 있습니다.

자, 오늘은 기초를 다지기 위해 그럼 빗썸의 가상화폐 한개의 가격을 가져오는 함수를 먼저 짜볼까 합니다.

먼저 구글스프레드 시트를 새로 생성합니다.

.

두번째, 스크립트 편집기를 클릭합니다.


세번 째, 함수를 제작해봅시다.

함수에 대해 간단히 설명을 드리면, 제가 작성한 함수명은 getBlockChain2KRWByBithumb 이고, coin이라는 변수를 받아옵니다.

coin이란 변수는 엑셀의 특정 쉘의 값을 가져올건데 가상화폐 약자를 입력받을 겁니다. (ex. BTC, ETH...등등)

그리고 9행을 보면 빗썸 사이트의 api 값을 던져주는 주소입니다. "https://api.bithumb.com/public/ticker/"

여기에 +coin이라고 적혀있는데 이건 함수에서 받아온 값을 더해준다는 뜻입니다.

coin으로 받아온 값이 BTC라면 url값은 https://api.bithumb.com/public/ticker/BTC 가 되겠죠.

자 그럼 인터넷 페이지에 해당 주소를 넣으면 어떤값을 보내주는지 확인해보시죠.

status가 0000이라는 것은 성공했다는 뜻입니다. 이렇게 데이터를 주고 받는 방식을 json이라고 합니다.

일종의 DB 쿼리를 날린 것 처럼 결과값을 다룰 수 언어입니다.

opening_price는 24시간 전의 가격이고 closing_price는 가장 최근 가격입니다.

나머지는 min_price, max_price등 읽어보시면 감이 오실 겁니다.

자 그럼 우리가 관심있는 값이 현 가격=closing_price입니다.

그럼 json 값을 받아오기위해 10행에서 주소값을 보내줬구요. 11행에서 결과값(이미지의 json결과와 동일)을 받아옵니다.

13행에서는 이것을 json형태로 파싱해주게 되구요.

16행에서는 가져온 정보를 꺼내서 KRW_value라는 변수에 저장하게 됩니다.

그리고 18행에서 현재가격을 리턴해줍니다.

자 그럼 함수는 여기까지 입니다.

네번째, 구글스프레드시트에서 연결해 봅시다.

B6에 가상화폐라고 적고, B7에 BTC라고 입력합니다.

그리고 C6에 현재가격이라고 적고, C7에 좀전에 작성했던 getBlockChain2KRWByBithumb 함수를 적어주고

함수의 입력값으로 B7 항목을 넣어줍니다.

그러면 따다단 하고 BTC의 현재가격을 불러오게 됩니다.

어렵지 않죠?

마찬가지로 Poloniex의 현재가격 가져오는 함수도 공개합니다.

잘보셨나요?

이해가 안되는 부분이 있으면 알려주세요.

2탄에서는 여러 가상화폐 값을 한번에 가져오는 응용버전을 작성해보겠습니다.

모두 기대 많이 해주세요. 감사합니다.

Sort:  

친절한 포스팅 감사합니다! 거래내역 정리할때마다 시세 연동이 고민이었는데 스프레드시트로 한번 도전해봐야겠어요!bb

넵 부족한 글 봐주셔서 감사합니다. 좋은 하루 보내세요. ^^

감사합니다!! 나중엔 api로 거래하는 법도 올려주세요

결과적으로 알려드리면 C#으론 성공했는데 javascript로는 실패했었어요.
파싱에 문제가 있는 것 같은데 주말에 시간내서 다시 도전해보겠습니다 ^^
좋은 하루 보내세요.

업보트 99번 누르고 갑니다. 😆
진짜 도움 많이 되겠어요. api, json 이 이런 거군요. 감사합니다!

도움이 되셨다니 다행이네요. 업보트 감사해요. 좋은 하루 보내세요 ^^

이런글은 추천
저한테도 많은 도움이 될 것 같아요

감사합니다. 도움이 되셨다니 저도 기분이 좋습니다.
2탄도 얼른 작성해보겠습니다. ^^

글 감사합니다 :)

블록체인 주제 관련 게시글 태그에는 한국어 태그로 #kr과 블록체인 및 암호화폐 관련 게시글 태그인 #coinkorea 태그를 붙여 주시면 더 많은 사람들이 보실 수 있을 것 같습니다. 또한 암호화폐 관련 게시글의 세분화된 태그로 만약 관련된 코인에 대한 글을 작성하신다면 #kr-btc #kr-eth과 같은 kr-코인 기호명과 같은 태그를 붙여 주시면 더 많은 분들이 읽으시고 도움받으실 수 있을것 같습니다.
그와 관련된 게시글을 한번 읽어주시고 동참해주시면 정말 감사하겠습니다.
Steemit KR 커뮤니티 CoinKorea 프로젝트
가입인사 태그 및 CoinKorea 태그 세분화 제안

네 참고하겠습니다. 좋은 하루 보내세요.

굉장합니다!
저걸 몰라서 어렵게 엑셀에 구현해서 쓰고 있었는데!!!
조만간 저도 해보고 구글시트로 갈아타던지 해야겠네요^^

https://steemit.com/kr/@nand/markdown

이 포스팅의 '블록인용' 으로 코드를 본문에 붙여넣어주신다면 사람들이 복사해서 쓰기에 편리할 것 같습니다.

아, 그리고...혹시 일정시간마다 자동으로 시세를 다시 불러오는 것도 가능한가요?

그렇겠네요. 오늘 집에 돌아가는대로 수정하겠습니다. 자동으로 시세를 불러들이는것은 트리거 기능을 통해 가능합니다. 그것도 다뤄보겠습니다.

능력자시네요! 와우! 감사합니다 ^^
다음 포스팅도 기다려지네요!

2탄 올렸습니다. 트리거 사용법 있으니 참고해주세요 ^^

앗! 감사합니다 ^^

굿 ! 감사합니다

감사합니다. 좋은 하루 보내세요.

2탄은 언제 올려주시나요 현기증이 나네요
궁금했던 내용인데.. 감사합니다!!
정보글은 보팅이야

오~ 정말 스팀잇에는 다양한 분야의 전문가들이 모인것같습니다..^^ @ineedthesleep님 잘보고갑니다!

제가 바라던 포스팅이네요. 지속적인 연재 응원하겠습니다.

이런거 좋아요 👍👍 많이 올려주세요~! 배우겠습니다

감사합니다 덕분에 포트폴리오 관리 시트 만들었어요 ㅎㅎ

자료 정말 감사합니다. 그런데 가끔 시세 업데이트가 안되어서 스크립트 편집기에서 디버깅을 돌려보면 Service invoked too many times for one day urlfetch 라고 에러가 나옵니다. urlfetch 콜수가 한도가 초과되어 그런거 같은데 혹시 이 에러를 없앨 수 있는(콜수 요청을 줄일 수 있는) 방법이 없을까요? 소스코드 어떤 부분을 어떻게 수정하면 좋을까요? 도움주시면 정말 감사드리겠습니다..

너무 고마워요!

친절한 포스팅 감사합니다. 코드 작성 후에 반드시 저장을 하고 스프레드 시트로 넘어가야하네요. 따라하다가 중간에 막혔었는데요. 같이 표기해주면 좋을 것 같습니다.

감사합니다 근데 자꾸 urlfetchapp가 정의되지 않았다고 reference 오류가 뜨는데 이건 어떻게 해결해야 할까요?

적절히 활용하면 꽤 유용할 거 같아요. 잘 참조해서 함 해봐야겠네요.