-
한국투자증권, 텔레그램 API 활용 - 잔고 조회프로그래밍/Open API 2023. 2. 28. 19:55반응형
스케줄러를 활용하여 매일 장마감 이후 잔고 내역을 텔레그램 메시지로 받아보려 한다. 스케줄러는 StockBalance클래스의 execute() 메소드를 호출한다. 이후엔 https 프로토콜로 한국투자로 요청하고 응답값을 정제하여 생성된 메시지를 텔레그램 api로 요청하면 사용자의 단말기로 메시지를 수신받을 수 있다. 이를 도식화하면 아래와 같다.
한국투자증권과 텔레그램은 https 프로토콜로 통신하기 때문에 접근하기 매우 쉽다. 한국투자증권 요청은 GET 메소드를 사용하고 텔레그램 요청은 POST 메소드를 사용한다. 한국투자증권은 인증정보를 http header에 텔레그램은 인증값을 URI에 넣는다. 다음 표는 잔고조회에 사용되는 URI이다.
메소드명 http method ContentType URI 한국투자 잔고조회 GET application/json https://openapi.koreainvestment.com:9443/uapi/domestic-stock/v1/trading/inquire-balance텔레그램 메시지 발송 POST application/json https://api.telegram.org/bot[TOKEN]/sendMessage아래 소스는 잔고조회 소스 중 일부인 StockBalance 클래스이다.
- 78번 라인, createPaper 메소드를 통해 요청값들을 설정한다.
- 48번 라인, 응답받은 TTTC8434RRes 오브젝트를 createMessage 메소드로 사용자에게 보낼 메시지를 만든다.
- 보낼 메시지를 만들고 64번 라인의 sendMessageToUser 메소드를 통해 텔레그램을 호출한다.
프로세스는 매우 간단한다. 오히려 value object를 생성하는 일이 더 힘들다. Map객체를 활용할 수 있겠으나 결국엔 명세는 있어야 한다. 그래서 value object를 만들었다. WADL를 지원하면 참 좋을 것 같다.
주식잔고에 요청할 명세는 아래 표와 같다. 헤더 부분은 필자가 간추린 속성들이다. 자세한 API 문서는 KIS Developers 사이트를 참조하면 되겠다. 해당 소스는 샘플이므로 쿼리파라미터의 계좌번호를 제외한 다른 속성 값들은 소스에 고정 기입되어 있다.
- http header
헤더 속성명 설명 gt_uid 트랜젝션 고윳값 authorization appkey, appsecret 값으로 발급받은 토큰값 appkey api 신청시 발급받은 appkey appsecret api 신청시 발급받은 appsecret tr_id 잔고조회 아이디 - query parameters
잔고조회 API는 GET 메소드를 사용하기 때문에 Body 값에 메시지를 담는 것이 아닌 URI의 query parameter를 사용해야 한다.
Element 한글명 Type 필수 여부 길이 설명 CANO 종합계좌번호 String Y 8 계좌번호 체계(8-2)의 앞 8자리 ACNT_PRDT_CD 계좌상품코드 String Y 2 계좌번호 체계(8-2)의 뒤 2자리 AFHR_FLPR_YN 시간외단일가여부 String Y 1 N : 기본값
Y : 시간외단일가OFL_YN 오프라인여부 String Y 1 공란(Default) INQR_DVSN 조회구분 String Y 2 01 : 대출일별
02 : 종목별UNPR_DVSN 단가구분 String Y 2 01 : 기본값 FUND_STTL_ICLD_YN 펀드결제분포함여부 String Y 1 N : 포함하지 않음
Y : 포함FNCG_AMT_AUTO_RDPT_YN 융자금액자동상환여부 String Y 1 N : 기본값 PRCS_DVSN 처리구분 String Y 2 00 : 전일매매포함
01 : 전일매매미포함CTX_AREA_FK100 연속조회검색조건100 String Y 100 공란 : 최초 조회시
이전 조회 Output CTX_AREA_FK100 값 : 다음페이지 조회시(2번째부터)CTX_AREA_NK100 연속조회키100 String Y 100 공란 : 최초 조회시
이전 조회 Output CTX_AREA_NK100 값 : 다음페이지 조회시(2번째부터)텔레그램으로 사용자가 받은 메시지는 아래 그림과 같다.
전체소스는 아래 링크를 통해 확인할 수 있다.
반응형'프로그래밍 > Open API' 카테고리의 다른 글
한국투자증권, 텔레그램 API 활용기 (0) 2023.02.24 한국투자증권 Open API, 'Talend API Tester' 테스트 해보기 (0) 2022.12.20