커서가 망쳐놓은 듯
This commit is contained in:
@@ -332,34 +332,19 @@ class KISClient:
|
||||
logger.info("한투 토큰 캐시 사용 (%s) | 파일=%s | 토큰앞8=%s", mode_str, path, token_head)
|
||||
return
|
||||
|
||||
# 캐시 없음/만료 → API로 새 토큰 발급 (캐시 파일 없어도 자동 발급)
|
||||
appkey_tail = (self.app_key[-4:] if len(self.app_key) >= 4 else self.app_key) or "????"
|
||||
logger.info(
|
||||
"한투 토큰 발급 요청 (%s) | 앱키 끝4자리=%s | 저장할 캐시=%s",
|
||||
mode_str, appkey_tail, path,
|
||||
)
|
||||
url = f"{self.base_url}/oauth2/tokenP"
|
||||
body = {"grant_type": "client_credentials", "appkey": self.app_key, "appsecret": self.app_secret}
|
||||
# 캐시 없음/만료 → kis_token_manager 경로로만 발급 (잠금·1일1회 준수, SMS 시각 안정화)
|
||||
try:
|
||||
r = requests.post(url, json=body, timeout=10)
|
||||
data = r.json()
|
||||
if "access_token" in data:
|
||||
self.access_token = data["access_token"]
|
||||
expired = data.get("access_token_token_expired") or ""
|
||||
_save_kis_token_cache(self.access_token, expired, self.mock)
|
||||
token_head = (self.access_token[:8] + "…") if self.access_token and len(self.access_token) > 8 else "(없음)"
|
||||
logger.info(
|
||||
"한투 토큰 발급 완료 (%s) | 캐시=%s | 앱키끝4=%s | 토큰앞8=%s",
|
||||
mode_str, path, appkey_tail, token_head,
|
||||
)
|
||||
else:
|
||||
logger.error("한투 토큰 발급 실패: %s", data)
|
||||
if isinstance(data, dict) and data.get("error_code") == "EGW00133":
|
||||
logger.warning("한투 1분당 1회 제한. 1분 후 재시도하거나 캐시 사용: %s", path)
|
||||
raise RuntimeError("한투 토큰 발급 실패")
|
||||
from kis_token_manager import ensure_token
|
||||
if ensure_token(self.mock):
|
||||
cached = _load_kis_token_cache(self.mock)
|
||||
if cached:
|
||||
self.access_token = cached
|
||||
token_head = (cached[:8] + "…") if len(cached) > 8 else "(없음)"
|
||||
logger.info("한투 토큰 발급 완료 (%s) | 캐시=%s | 토큰앞8=%s", mode_str, path, token_head)
|
||||
return
|
||||
except Exception as e:
|
||||
logger.error("한투 인증 예외: %s", e)
|
||||
raise
|
||||
logger.warning("kis_token_manager 발급 실패, 재시도: %s", e)
|
||||
raise RuntimeError("한투 토큰 발급 실패 (캐시 없음·만료 시 kis_token_manager.ensure_token 사용)")
|
||||
|
||||
def _get_hashkey(self, body):
|
||||
"""해시키(Hashkey) 발급 - POST 요청 시 body 무결성 검증용"""
|
||||
|
||||
Reference in New Issue
Block a user