오늘 배워 오늘 쓰는 OpenAPI/사전준비 (인증키 발급, 설치)

카카오 사용자 토큰 발급 (2020/04 변경사항 update)

ai-creator 2020. 4. 10. 23:01
반응형

2020년 4월부터 kakao developers 사이트가 전면 개편되었습니다.

기존에 access token을 제공해주었는데요, 현재는 인증을 거쳐 code / access_token / refresh token 을 발급받도록 변경되었습니다.

 

(좌) 개편 전/ (우) 개편 후

 

또한 기존 애플리케이션이 있더라도 애플리케이션을 새로 만드는 것을 권장 드립니다. 

** 개편 마이그레이션으로 인한 호환성 문제가 있네요.^^;;

 

# 애플리케이션 새로 만들기 및 권한 설정

(더보기 클릭)

더보기

[애플리케이션이 없는 경우]

1)  애플리케이션 추가하기

** 사용중이던 애플리케이션 있다면, 2)로 이동합니다

 

2) 동의 항목 표시

3)  활성화 설정 및 redirect uri 설정


 

4) 플랫폼 등록

(** 도메인 순서 중요!)

 

 

<< 순서 >>

참고 : 인증토큰 받기

Step 1 Redirect URI 설정
Step 2 인증 코드 받기
Step 3 사용자 토큰 받기 (access token / refresh token)
Step 4 토큰 저장

Step1) Redirect URI 설정

Step2) 인증 code 받기

https://kauth.kakao.com/oauth/authorize?client_id={REST_API 앱키를 입력하세요}&response_type=code&redirect_uri=https://localhost.com

 

으로 접속시도하면, 로그인 요청을 합니다. 

(참고 : 로그인이 된 세션이 유효하다면, 로그인 요청을 하진 않습니다.

하여, 크롬 시크릿모드에서 수행하시기 바랍니다)

새 시크릿창
빨간창에 넣어주세요.
첫 시도의 경우 동의 버튼이 나옵니다. (이후부턴 안나와요)

 

주의) 수행시간이 다소 걸릴 수 있음 / (우) 세션이 유지된 상태에서 시도

 

ㅁ step2의 trouble shooting

에러가 나는 경우 +더보기 를 눌러 확인해보세요.

더보기

case 1) 뭔가 잘못된 요청한거 같다.  는 메시지가 나올때,

확인1) 지정해준 url뒤에 이상한 문자가 들어간건 아닌지?

확인2) 앱키로 url을 잘 구성하였는지?

만약, 앱키가 ABCDEFG 라면, 아래와 같이 되어야 함

https://kauth.kakao.com/oauth/authorize?client_id=ABCDEFG&response_type=code&redirect_uri=localhost.com

 

 

 

 

 

Step3) 사용자 토큰 받기 (access token / refresh token)

import requests
import json

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

data = {
    "grant_type" : "authorization_code",
    "client_id" : "<REST_API 앱키를 입력하세요>",
    "redirect_uri" : "https://localhost.com",
    "code"         : "<step2에서 발급받은 code를 입력하세요>"
    
}
response = requests.post(url, data=data)

tokens = response.json()

print(tokens)

refresh/access token 발급 완료되어 아래와 같은 결과를 확인 할 수 있습니다.

 

{'access_token': 'k3U------------------------------------------------',

'expires_in': 21599,

'refresh_token': '4I0------------------------------------------------',

'refresh_token_expires_in': 5183999,

'scope': 'talk_message profile',

'token_type': 'bearer'}

 

주의사항!! step2)에서 발급받은 인증code는 단 1번의 기회만 주어집니다.

실패가 나거나, 재 실행해야 할 경우 step2)로 다시 돌아가야 합니다.

즉, 동일한 인증code로 2번 이상 step3을 수행하지 않도록 해주세요.

 

Step 4) 토큰 저장

해당 token들은 계속 사용할 것이므로, 파일에 저장해 둡니다.

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

 

<< 다음에 보면 좋은글 >>

ai-creator.tistory.com/23

 

카카오 OpenAPI 활용 - 나에게 카톡 메시지 보내기

[목차] 1. 학습목표 2. 들어가기 3. 사전 준비 4. 사전 지식 쌓기 5. 구현 ㅁ Trouble Shooting ㅁ 요약정리 ㅁ 보충 자료 1. 학습목표 카카오에서 제공하는 OpenAPI를 이용해서 "나에게 카카오톡 메시지"를 �

ai-creator.tistory.com

 

<< 참고 >>

access token의 유효시간이 지나면, refresh token을 이용해서 재발급 받아야 합니다.

참고 : 사용자 토큰 갱신하기

 

url = "https://kauth.kakao.com/oauth/token"
data = {
    "grant_type" : "refresh_token",
    "client_id"  : "<REST_API 앱키를 입력하세요>",
    "refresh_token" : "<refresh token을 입력하세요>"
}
response = requests.post(url, data=data)

print(response.json())

access token이 재발급되어 아래와 같은 결과를 갖습니다.

{'access_token': 'VMe------------------------------------------------',

'expires_in': 21599,

'token_type': 'bearer'}


저작물의 저작권은 작성자에게 있습니다.
공유는 자유롭게 하시되 댓글 남겨주세요~
상업적 용도로는 무단 사용을 금지합니다.
끝까지 읽어주셔서 감사합니다^^

 

 

 

 

반응형