import requests import json APP_KEY = "" APP_SECRET = "" ACCESS_TOKEN = "" URL_BASE = "https://openapi.koreainvestment.com:9443" #실전투자 # Auth def auth(): headers = {"content-type":"application/json"} body = { "grant_type":"client_credentials", "appkey":APP_KEY, "appsecret":APP_SECRET } PATH = "oauth2/tokenP" URL = f"{URL_BASE}/{PATH}" res = requests.post(URL, headers=headers, data=json.dumps(body)) global ACCESS_TOKEN ACCESS_TOKEN = res.json()["access_token"] # 주식현재가 시세 def get_current_price(stock_no): PATH = "uapi/domestic-stock/v1/quotations/inquire-price" URL = f"{URL_BASE}/{PATH}" # 헤더 설정 headers = {"Content-Type":"application/json", "authorization": f"Bearer {ACCESS_TOKEN}", "appKey":APP_KEY, "appSecret":APP_SECRET, "tr_id":"FHKST01010100"} params = { "fid_cond_mrkt_div_code":"J", "fid_input_iscd": stock_no } # 호출 res = requests.get(URL, headers=headers, params=params) if res.status_code == 200 and res.json()["rt_cd"] == "0" : return(res.json()) # 토큰 만료 시 elif res.status_code == 200 and res.json()["msg_cd"] == "EGW00123" : auth() get_current_price(stock_no) else: print("Error Code : " + str(res.status_code) + " | " + res.text) return None get_current_price("005930")