파이썬 프로젝트 및 응용/음성으로 네이버 캘린더에 자동으로 일정 등록하는 plugin 만들기

[프로젝트] 파이썬 음성으로 네이버 캘린더에 자동으로 일정 등록하는 chatGPT plugin 만들기 - 3.엑세스 토큰 획득하기

파기차차 2023. 6. 17. 11:02
728x90
반응형
SMALL

ㅁ 개요

 

O 프로그램 소개

 

 

- 이번 글은 이전글([프로젝트] 파이썬 음성으로 네이버 캘린더에 자동으로 일정 등록하는 chatGPT plugin 만들기 - 1.네이버 개발자 센터에 애플리케이션 등록하기))에 이은 3번째 글로 여기서는 네이버 캘린더에 일정을 추가하는데 필요한 엑세스 토큰을 얻는 방법에 대하여 설명합니다.

 

 

 

O 완성된 프로그램 실행 화면

 

 

 - 본 포스팅의 최종 완성된 프로그램의 결과화면은 아래와 같습니다.

 

 

 

1.아래와 같이 프로그램을 실행하면 엑세스 토큰을 얻게 됩니다.

 

 


 

ㅁ 세부 내용

 

O 완성된 소스

 

 

소스 : 2.get_accessToken.py

 

 

import requests
from config import *

# 접근 토큰 발급 요청 API에서 access token 발급 받기
token_url = "https://nid.naver.com/oauth2.0/token"
headers = {"Content-Type": "application/x-www-form-urlencoded;charset=UTF-8"}
data = {
    "client_id": CLIENT_ID,
    "client_secret": CLIENT_SECRET,
    "grant_type": "authorization_code",
    "state": "abcde",  # 네이버 로그인 인증 요청 API 호출 시 사용한 state 값
    "code": AUTHORIZATION_CODE,
}
response = requests.post(token_url, headers=headers, data=data)
print(response)
response_json = response.json()
print(response_json)
access_token = response_json["access_token"]

# 회원 프로필 조회 API 호출
profile_url = "https://openapi.naver.com/v1/nid/me"
headers = {"Authorization": f"Bearer {access_token}"}
response = requests.get(profile_url, headers=headers)
response_json = response.json()
print(response_json)

 

 

 

 

 

 

 

 - 소스파일을 cmd, 파워쉘 또는 vscode 등에서 아래와 같이 실행하시기 바랍니다.
 

 

 > python 2.get_accessToken.py
 

 

 

 

 


 
 

 

O 주요 내용

 

1. 아래 소스코드에 대해서 간략히 설명합니다.

(대부분의 내용은 주석을 달아 놓았으니 이부분을 참고하여 주시기 바랍니다.)

 

 

관련 모듈을 임포트 해줍니다. (line 1~2)

(아래 config.py 파일에 인증 정보(Client ID, Client SECRET, AUTHORIZATION CODE 등)를 넣어 둡니다)

 

 

token_url, headers, data를 설정 후 api 요청을 합니다.(line 5~14)

 

요청에 대한 응답값을 response변수에 저장 후 json형식(키/벨류)으로 가져옵니다.(line 16)

 

json형식으로 가져온 response_json 변수에서 access token값만 가져옵니다.(line 18)

 

 

**아래 부분은 해도되고 안해도 됨(skip 해도 상관없는 부분임)

회원 프로필을 조회하기 위해 profile_url, headers 정보를 이용하여 다시 api 요청을 합니다(line 21~23)

 

다시 응답값을 json형식으로 만들고, print()문으로 찍어 봅니다.(line 24~25)

결과

{'resultcode': '00', 'message': 'success', 'response': {'id': '8nTAPO50dDgsF3nlnkK3HTnjcYxulhhxU_0L8IJrfTM'}}

 

 

 

 


 

ㅁ 정리

 

O 우리가 배운 내용

 
 - 오늘은 네이버 캘린더에 일정을 추가하는데 필요한 엑세스 토큰을 얻는 방법에 대하여 알아보았습니다.
 
 
 - 오늘 우리가 배운 내용을 간략히 정리해 보면 아래와 같습니다.

 > 1.일정 추가

   service.events().insert(calendarId='primary', body=event).execute() <-- service객체의 insert()함수로 일정 추가

 > 2.일정 삭제

   service.events().delete(calendarId='primary', eventId=event['id']).execute() <-- service객체의 delete()함수로 일정 삭제

 

 

 

오늘은 여기까지이며, 댓글하트는 제가 이글을 지속할 수 있게 해주는 힘이 됩니다.

위의 내용이 유익하셨다면, 댓글과 하트 부탁드립니다.

 

 

 

 

감사합니다.

 

 

 

 

 

※ 추가적인 정보는 아래 유튜브 영상에서 해당 내용을 더욱 자세히 보실 수 있습니다.

 

 

728x90
반응형
LIST