본문 바로가기

Language/Python

[Python] 카카오 REST API 엑세스 토큰 갱신하기

참고 사이트

developers.kakao.com/docs/latest/ko/kakaologin/rest-api#refresh-token

 

Kakao Developers

카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.

developers.kakao.com

 

 

 


 

 

 

 

초기 엑세스 토큰을 발급 후 계속해서 사용하다보면 401 Error를 응답받을 것이다.

이유는 엑세스 토큰을 발급할 때, 토큰을 사용할 수 있는 유효기간을 제시한다. 이 유효기간이 만료되면 더 이상 해당 엑세스 토큰을 사용할 수 없으며, 만료된 엑세스 토큰으로 REST API를 요청할 시 401 에러를 경험하게 된다.

 

따라서, 유효기간이 만료되기 이전에 갱신을 해야한다.

 

 

 

갱신하는 코드는 다음과 같다.

아래 코드에서 사용되는 refresh_token의 경우 초기 엑세스 토큰을 발급받을 때 제공해주는 refresh_token이라는 사용자 리프레시 토큰을 뜻한다. 

 

 

초기 엑세스 토큰 발급하는 법 :

>> 아래 포스팅 내용 중 코드의 마지막 부분 print(tokens["access_token"]) 을 print(tokens)로 바꾸면 refresh_token 확인 가능

kangprog.tistory.com/97

 

[Python] 카카오 REST API 엑세스 토큰 발급 하기

엑세스 토큰 발급 관련 참고 developers.kakao.com/docs/latest/ko/kakaologin/rest-api#request-code Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내..

kangprog.tistory.com

 

다시 본론으로 돌아와, 엑세스 토큰을 갱신하는 코드는 다음과 같다.

def refreshToken(refresh_token) -> str:
    REST_API_KEY = "자신의 REST API KEY"
    REDIRECT_URI = "https://kauth.kakao.com/oauth/token"

    data = {
        "grant_type": "refresh_token", # 얘는 단순 String임. "refresh_token"
        "client_id":f"{REST_API_KEY}",
        "refresh_token": refresh_token # 여기가 위에서 얻은 refresh_token 값
    }    
 
    resp = requests.post(REDIRECT_URI , data=data)
    new_token = resp.json()

    return new_token['access_token']

 

 

반응형