Programming/파이썬(python) - 라이브러리

파이썬(python)/ 카카오 API 토큰 갱신

esoog Polaris 2024. 1. 14. 22:27
반응형

1. 토큰 정보 얻기(kakao developers 가입 후 진행)

카카오 api를 사용하기 위해서는 엑세스 토큰 정보 필요(기한이 2~12시간만 사용 가능)

그래서 refresh token을 사용해서 일정 기간 갱신 사용 가능한 방법으로 사용해야 함. 

 

import requests
import json

url = "https://kauth.kakao.com/oauth/token"

data = {
    "grant_type" : "authorization_code",
    "client_id" : "REST API KEY", # rest api key
    "redirect_uri" : "http://localhost", 
    # 내어플리케이션 - 앱선택 - 카카오로그인 - 리다이렉트URL 설정
    # 그리고 주소창
    # https://kauth.kakao.com/oauth/authorize?client_id=REST API KEY&redirect_uri=리다이렉트URL&response_type=code
    # RESTAPI와 리다이렉트URL을 본인 것으로 설정 후 접속하면 에러뜨는데;
    # 주소창 code 옆에 =???? 이 부분이 아래 인가 코드로 쓰면 된다.
    "code" : "인가 코드" # 
}

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

# 토큰을 파일로 저장하기
if "access_token" in tokens:
    with open("kakao_token.json", "w") as fp:
        json.dump(tokens, fp)
        print("Tokens saved successfully")
else:
    print(tokens)

 

* 이런 결과를 볼 수 있다. {"access_token": "???", "token_type": "bearer", "refresh_token": "???", "expires_in": 21599, "scope": "talk_message profile_nickname", "refresh_token_expires_in": 5183999}

 

 

 

2.  refresh token 사용해서 토큰 갱신

 

    def refresh_token(self):
        url = "https://kauth.kakao.com/oauth/token"
        data = {
        "grant_type": "refresh_token",
        "client_id": self.app_key,
        "refresh_token": self.tokens['refresh_token']
        }

        response = requests.post(url, data=data)

        # 갱신 된 토큰 내용 확인
        result = response.json()

        # 갱신 된 내용으로 파일 업데이트
        if 'access_token' in result:
            self.tokens['access_token'] = result['access_token']

        if 'refresh_token' in result:
            self.tokens['refresh_token'] = result['refresh_token']
        else:
            pass

        with open("kakao_token.json", "w") as fp:
            json.dump(self.tokens, fp)

 

728x90