[Kakao API] 사용자토큰 발급받기

1 minute read

Kakao API [User token]

오늘은 Kakao API에 대하여 알아보겠습니다.

저희는 Python 언어를 이용하여 API 를 이용해보도록 하겠습니다.

카카오 API 를 사용하기 위해서는 사용자 토큰을 발급받아야합니다.

하지만 토큰에는 사용시간 제한이 있기 때문에 refresh 토큰을 통해 사용자 토큰을 초기화 해주어야 합니다.

오늘은 사용자 토큰부터 받아보도록 하겠습니다.

토큰별 유효시간

Android, iOS : 12시간 JavaScript: 2 시간 REST API : 6시간

Refresh Token : 2달

이 글은 2020년 8월 20일에 작성되었으며 변동되면 업데이트하도록 하겠습니다.

회원가입 및 로그인

여러분들이 직접 카카오에 있는 사용법을 보고 사용할 수 있도록 설명하겠습니다.

먼저 토큰을 발급받기 위해 카카오 개발자 사이트에 접속하여 회원가입합니다.

kakaofirstpage

회원가입한후 로그인을 진행하고 오른쪽 상단에 내 어플리케이션 을 클릭합니다.

kakaofirstpage

회원가입한 후 로그인을 진행하고 오른쪽 상단에 애플리케이션 추가하기 을 클릭합니다.

App key 발급받기

kakaofirstpage

저희는 REST API 를 이용하여 사용할 예정이므로 REST API 키를 받아 사용하도록 하겠습니다.

활성화 설정

kakao_activate

카카오톡 로그인을 하여 서비스를 이용할 예정이므로 제품설정 > 카카오톡 로그인 을 클릭합니다. 활성화 설정을 ON으로 변경하고 Redirect URl 에 원하시는 주소로 입력합니다.

인증 코드 받기

카카오톡 API 사용을 위하여 인증코드를 받아야합니다. 인증 코드 받기 링크로 이동합니다.

kakao_code_url

GET /oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code HTTP/1.1 
Host: kauth.kakao.com

상기 코드를 보고 발급받은 REST_API_KEY 와 REDIRECT_URI 을 추가하여 브라우저 주소창에 입력합니다.

kauth.kakao.com/oauth/authorize?client_id={REST_API_KEY}&redirect_uri={REDIRECT_URI}&response_type=code

입력 후 응답을 기다리면 하기와 같이 URl 이 변경됩니다.

https://localhost.com/?code=JrFxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

JrFxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx 가 저희가 사용할 코드입니다.

사용자 토큰 받기

kakao_token

Response

Key
Name Type Description
token_type String 토큰 타입, “bearer”로 고정
access_token String 사용자 액세스 토큰 값
expires_in Integer 액세스 토큰 만료 시간(초)
refresh_token String 사용자 리프레시 토큰 값
refresh_token_expires_in Integer 리프레시 토큰 만료 시간(초)
scope String 인증된 사용자의 정보 조회 권한 범위 범위가 여러 개일 경우, 공백으로 구분

사용자 토큰을 받기위해 코드를 상기 URL 에서 필수요소들을 request하고 응답값을 .json 형식의 파일로 저장해보겠습니다.

import requests
import json
#
# 초기 키 땡기기
app_key = {REST_API_KEY} # 초기 앱키 rest_key
code = "JrFxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

url = "https://kauth.kakao.com/oauth/token"
data = {
     "grant_type"    : "authorization_code",
     "client_id"     : app_key,
     "redirect_url"  : "https://localhost.com",
     "code"          : code
}

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

tokens = response.json()

print(tokens)

with open("kakao_token.json", 'w') as fp:
    json.dump(tokens, fp) # 저장하는 것

response = requests.post(url, data=data) 코드를 통하여 post방식으로 요청하면 응답 값을 받을 수 있습니다.

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

상기 코드를 통하여 응답값을 kakao_token.json 이름의 .json 형태의 파일로 저장합니다.

이렇게 하여 저희는 사용자토큰을 kakao_token.json 파일에 넣어보았습니다. 사용자 토큰을 바로 사용하는 것도 가능하지만 .json 형태의 파일로 저장하여 구분하였습니다.

오늘은 카카오 API 사용자 토큰을 받아보았습니다.

Leave a comment