2P by kibua20 2020-07-12 | favorite | 댓글 2개

Google API를 사용하기 위 OAuth 2.0 인증을 받은 방법 중 JWT (JSON Web Token) 을 이용한 Service account 인증 방법과 Google Calendar API를 통해서 사용자 계정의 calendar event를 얻어오는 방법을 설명합니다.

Service Account 사용하기 위해서는 아래와 같이 5단계로 진행해야 합니다.
1. Google API console 에서 Service Account 생성:
- Service account를 생성하면 Client ID와 Private Key를 할당받는다.
2, JWT (Json Web Token) 생성:
- Header, Claim set, signature를 base64urlsafe 값으로 encoding 한다.
- python인 경우 PyJWT 를 JWT string을 생성 가능함
3. 구글 인증 서버에서 JWT을 사용해서 Token을 request 한다.
4. 구글 서버에서 Access Token을 response로 내려준다.
5. Access token을 사용해서 Google API를 호출한다.

Google Calendar API 주의할 점은 사용자 계정과 서비스 계정은 별개의 계정이기 때문에 사용자 계정의 구글 Calendar에서 서비스 계정의 공유 권한을 추가해야 합니다. Google Calendar API 호출은 curl 명령어 또는 python requests 를 사용 가능합니다.

음.. 실제 서비스에 적용하려고 한다면 사용자가 캘린더를 공유하는 UX 를 만들어야 할 것 같은데 가능은 하려나요?

사용자 계정에서 캘린더를 공유해야 하기 때문에 jwt 보다는 oautho2 client가 맞는것 같습니다.

Gmail 이 oautho2 로 구현한 예제입니다.
https://kibua20.tistory.com/m/70