카카오 API access token 재발급 시 문의

문의 시, 사용하시는 개발환경과 디벨로퍼스 앱ID를 알려주세요.


  1. 개발환경 : 파이썬 주피터노트북을 vscode에서 사용 중
  2. 디벨로퍼스 앱 ID : 1036835

access token을 매번 인증하지 않고 refresh token으로 자동 갱신하도록 코드 구성하였는데요.

처음 코드를 구성하고 최초 실행 시 access token이 파이썬 코드를 통해 갱신되는 것을 확인하였습니다.

이 코드를 이용해 access token이 지속적으로 갱신되어야 하니,

테스트 할 겸 여러 번 실행해보았는데 두번째 실행부터 Keyerror 가 발생하네요…?

  1. access token 발급 후 json 저장
import requests
import json

url = "https://kauth.kakao.com/oauth/token"
rest_api_key = "1483a269d91484c9b0446ec5f4c5b5e2"
redirect_uri = "https://example.com/oauth"
authorize_code = "Vj1_HqHkI0fQohRRQUPcPkwaZ1Ka20_Ar5xp4Vi90yFOb6t6UTt5HqvvqY4KKclfAAABjdgF_yVDz1szkZmFRA"

data = {
    'grant_type':'authorization_code',
    'client_id':rest_api_key,
    'redirect_uri':redirect_uri,
    'code': authorize_code,
    }

response = requests.post(url, data=data)
tokens = response.json()
print(tokens)

# json 저장
with open(r"kakaoapi.json","w") as fp:
    json.dump(tokens, fp)
  1. access token을 갱신하기 위해 refresh token을 이용하여 갱신
RE_api = "1483a269d91484c9b0446ec5f4c5b5e2"
RE_url = "https://kauth.kakao.com/oauth/token"

data = {
        "grant_type": "refresh_token", 
        "client_id": RE_api ,
        "refresh_token": tokens["refresh_token"] 
    }    

response = requests.post(RE_url, data=data)
tokens = response.json()

with open("kakaoapi.json", "w") as fp : 
    json.dump(tokens, fp) 
tokens["access_token"]
  1. 결과
  1. 최초 실행 시 access token이 정상 갱신되어 json 저장
  2. 두번 째 실행 시 Keyerror 발생함.
    image

이유를 모르겠어요 … ㅠ

안녕하세요

접근토큰 갱신 응답 값에 refresh_token 값은 항상 포함되지 않습니다.
사용된 refresh_token의 갱신이 필요한 경우(만료까지 1달 이내)에만 전달됩니다.

따라서 refresh_token 키가 존재하는지 확인하는 코드가 필요해 보입니다.