IT

★카카오 API 사용을 위한 토큰(Tokens) 갱신 방법

유병혁 2021. 6. 1. 14:30

안녕하세요? 이번 글은 카카오 API 사용을 위한 토큰(Tokens) 갱신 방법을 정리해 보겠습니다. 이전 글은 다음 링크를 참고하시면 됩니다.

 

★카카오 API를 이용하여 나에게 메시지 보내기

안녕하세요? 이번 글은 카카오 API를 이용하여 나에게 메시지 보내는 과정을 정리해 보겠습니다. 일단 'Kakao Developers' 홈페이지에 접속합니다. Kakao Developers 카카오 API를 활용하여 다양한 어플리케

blog.daum.net

카카오 API는 액세스 토큰(Access Token)과, 액세스 토큰을 갱신하는 데 쓰는 리프레시 토큰(Refresh Token)이 있습니다.

 

이번 글은 리프레시 토큰을 사용하여 엑세스 토큰을 갱신하는 방법입니다.

# 카카오톡 메시지 API
url = "https://kauth.kakao.com/oauth/token"
data = {
    "grant_type" : "authorization_code",
    "client_id" : "{REST API}",
    "redirect_url" : "https://localhost:3000",
    "code" : "{코드}"
}
response = requests.post(url, data=data)
tokens = response.json()
print(tokens)

위와 같은 방식으로 'access_token'과 'refresh_token'을 확인할 수 있는데요, 갱신 방법은 아래와 같습니다.

*{REST API}와 {refresh_token}을 교체해 주시면 됩니다. tokens가 교체되면서 {access_token}이 갱신됩니다.

# 카카오톡 메시지 API
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)
tokens = response.json()
# kakao_code.json 파일 저장
with open("kakao_code.json", "w") as fp:
    json.dump(tokens, fp)

이제 아래 코드로 시험해 보시면, 정상 동작하는 것을 확인하실 수 있습니다.

url = "https://kapi.kakao.com/v2/api/talk/memo/default/send"
headers = {
    "Authorization": "Bearer " + tokens['access_token']
}
data = {
    "template_object" : json.dumps({ "object_type" : "text",
                                     "text" : "Google 뉴스: drone",
                                     "link" : {
                                                 "web_url" : "https://www.google.co.kr/search?q=drone&source=lnms&tbm=nws",
                                                 "mobile_web_url" : "https://www.google.co.kr/search?q=drone&source=lnms&tbm=nws"
                                              }
    })
}
response = requests.post(url, headers=headers, data=data)
if response.json().get('result_code') == 0:
    print('메시지를 성공적으로 보냈습니다.')
else:
    print('메시지를 성공적으로 보내지 못했습니다. 오류메시지 : ' + str(response.json()))

(해당 코드를 함수로 정의 후) 이제 'schedule' 라이브러리와 함께 사용하여 정기적으로 갱신해주시면 되겠습니다.

 

★schedule: 정해진 시간에 파이썬(Python) 스크립트 자동 실행

안녕하세요? 이번 글은 정해진 시간에 파이썬(Python) 스크립트를 자동 실행하는, 작업 예약용 라이브러리 'schedule'을 학습해 보겠습니다. schedule Job scheduling for humans. pypi.org schedule 라이브러리는..

blog.daum.net