시작하기 앞서
프로젝트에 구글 캘린더 API를 적용해야 하는데, 스스로의 검색 능력 한계로 적합한 가이드 자료를 찾을 수 없어 google developers에 있는 공식 문서를 읽으며 해당 기능을 사용하는 방법을 정리하기로 마음 먹었다. 영어로 된 문서라 빠르게 정보를 습득하는데 한계가 있어, 필요한 부분을 번역해서 나중에 필요할 때 참고하면 좋을거 같아 블로그에 공식 문서를 번역하는 글을 쓴다!
* 전문적으로 교육받은 번역가가 작성한 글이 아니기 때문에 문서에 작성자가 인지하지 못한 오역과 의역이 다수 존재할 수 있습니다.
2022. 1. 8 (글을 쓴 다음 날) 첨언
아래의 글을 읽기 전, 만약 API, OAuth 2.0 혹은 인증/인가에 관한 지식이 없는 상태에서 구글 캘린더를 구동하려 하는 경우 아래의 강의를 시청하길 강력 권장한다. 생활코딩에서 만든 OAuth 2.0 수업인데, API를 사용하는 방법을 아주 잘 설명해 놓았다. (마침 예제로 사용되는 API가 구글 캘린더다!) API를 사용하는 메커니즘을 한 눈에 익힐 수 있는 훌륭한 강의다.
https://www.youtube.com/watch?v=hm2r6LtUbk8&list=PLuHgQVnccGMA4guyznDlykFJh28_R08Q-&index=2
시작
1. Google Calendar API Overview
The Google Calendar API is a RESTful API that can be accessed through explicit HTTP calls or via the Google Client Libraries. The API exposes most of the features available in the Google Calendar Web interface.
Following is a list of common terms used in the Google Calendar API:
(Event, Calendar, Calendar List, Setting, ACL에 대한 설명이 각각 나와 있다.)
구글 캘린더 API는 정확한(explicit) HTTP 호출 혹은 구글 클라이언트 라이브러리를 통해 접근 가능한 RESTful API입니다. API는 구글 웹 인터페이스에서 사용할 수 있는 대부분의 기능을 제공합니다.
아래는 구글 캘린더 API에서 사용되는 공통 용어 목록입니다:
Next steps
To get started with Google Calendar API:
* To learn about developing with Google Workspace APIs, including handling authentication and authorization, refer to Get started as a Workspace developer.
* To learn how to configure and run a simple Google Calendar API app, read the Quickstarts overview.
구글 캘린더 API를 시작하기 위해:
- 인증 및 권한 부여를 포함한 구글 워크스페이스 API 개발에 대한 자세한 내용은 워크스페이스 개발자로 시작하기를 참조하여 주십시오.
- 간단한 구글 캘린더 API 애플리케이션을 구동하는 부분에 대한 자세한 내용은 빨리 시작하기를 참조하여 주십시오.
2. Develop on Google Workspace (워크스페이스 개발자로 시작하기)
Google Workspace offers a wide range of developer products and tools that let you connect your service with Google Workspace or extend Google Workspace apps like Gmail, Drive, and Chat. Each Workspace app or integration has its own Google Cloud project where you configure APIs, set up authentication, and manage deployments.
구글 워크스페이스는 구글 워크스페이스에 서비스를 연결하거나 Gmail, Drive, Chat과 같은 확장 앱을 확장할 수 있는 다양한 제품과 도구들을 제공합니다. 각각의 워크스페이스 앱 혹은 통합(integration)은 API 구성, 인증 설정, 배포 관리와 같은 고유한 구글 클라우드 프로젝트를 가지고 있습니다.
5 steps to get started
1. Create a Google Cloud project for your Google Workspace app, extension, or integration.
2. Enable the APIs you want to use in your Google Cloud project.
3. Learn how authentication and authorization works when developing for Google Workspace.
4. Configure OAuth consent to ensure users can understand and approve what access your app has to their data.
5. Create access credentials to authenticate your app's end users or service accounts.
- 구글 워크스페이스 앱, 확장 혹은 통합을 위한 구글 클라우드 프로젝트를 만드십시오.
- 구글 클라우드 프로젝트에서 사용하고자 하는 API를 활성화 하십시오.
- 구글 워크스페이스를 활용하여 개발을 할 때 필요한 인증과 인가 작업을 학습하십시오.
- 사용자가 이해할 수 있고, 당신의 앱이 데이터에 접근하는데 필요한 OAuth 동의를 구성하십시오.
- 앱의 최종 사용자 혹은 서비스 계정을 인증하는 접근 자격증명을 만드십시오.
2-1. Create a Google Cloud project (구글 클라우드 프로젝트 생성하기)
A Google Cloud project is required to use Google Workspace APIs and build Google Workspace add-ons or apps. This project forms the basis for creating, enabling, and using all Google Cloud services, including managing APIs, enabling billing, adding and removing collaborators, and managing permissions.
구글 클라우드 프로젝트를 이용하기 위해서는 구글 워크스페이스 API를 사용해 add-ons 혹은 앱을 빌드해야 합니다. 이 프로젝트는 API 관리, 청구 이용, 공동작업자 추가 및 제거, 권한 관리를 포함하는 모든 구글 클라우드 서비스를 생성, 활성화, 혹은 사용하기 위한 기본적인 기반을 제공합니다.
To create a Google Cloud project:
1. Open the Google Cloud Console.
2. At the top-left, click Menu > IAM & Admin > Create a Project.
3. In the Project Name field, enter a descriptive name for your project.
Optional: To edit the Project ID, click Edit. The project ID can't be changed after the project is created, so choose an ID that meets your needs for the lifetime of the project.
4. In the Location field, click Browse to display potential locations for your project. Then, click Select.
Caution: Can't find your Google Workspace organization?
This means you aren't signed in to a Google Workspace account. Some of the features described in Google Workspace developer documentation are only available to projects associated with an organization.
5. Click Create. The console navigates to the Dashboard page and your project is created within a few minutes.
For further information on Google Cloud projects, refer to Creating and managing projects.
구글 클라우드 프로젝트를 생성하기 위해:
- 구글 클라우드 콘솔을 여십시오.
- 왼쪽 상단, 메뉴 버튼 > IAM & Admin > Create a Project를 클릭하십시오.
- 프로젝트 이름(Project Name) 영역에 당신의 프로젝트를 설명하는 이름을 입력하십시오.
- 선택 : 프로젝트 ID(Project ID)를 편집하려면 Edit을 누르십시오. 프로젝트 ID는 생성되면 바꿀 수 없습니다. 따라서 프로젝트 기간 동안 피요한 ID를 선택하십시오.
- 프로젝트의 잠재적 위치를 표시하기 위해 위치(Location) 영역의 Browse를 클릭하십시오. 다음 Select를 클릭하십시오.
- 주의 : 구글 워크스페이스 organization을 찾을 수 없습니까?
- 이는 구글 워크스페이스 계정에 로그인되어 있지 않음을 의미합니다. 구글 워크스페이스 개발자 문서에 설명된 기능의 일부는 오직 프로젝트가 organization과 연결된 경우만 사용할 수 있습니다.
- Create을 누르십시오. 콘솔이 대시보드 창으로 이동하고 프로젝트가 몇 분 내로 생성될 것입니다.
2-2. Enable Google Workspace APIs (구글 워크스페이스 API 활성화하기)
To enable an API in your Google Cloud project:
1. Open the Google Cloud Console.
2. At the top-left, click Menu menu > APIs & Services > Library.
3. In the search field, enter the name of the API you want to enable and press Enter.
4. In the list of search results, click the API you want to enable.
5. Click Enable.
6. To enable more APIs, repeat steps 2–5.
구글 클라우드 프로젝트 내의 API를 활성화하기 위해:
- 구글 클라우드 콘솔을 여십시오.
- 왼쪽 상단, 메뉴 > APIs & Services > Library를 클릭하십시오.
- 검색 영역에 당신이 활성화하고자 하는 API 이름을 기입하고 엔터를 누르십시오.
- 검색 결과 중, 활성화하고자 하는 API를 클릭하십시오.
- Enable을 누르십시오.
- 더 많은 API를 활성화하려면 2 ~ 5번을 반복하십시오.
2-3. Learn about authentication & authorization (인증 & 인가 작업 학습하기)
<이 장은 문서 양이 방대하여 원본 첨부 없이 번역합니다. 원본은 아래의 링크를 클릭하면 확인할 수 있습니다.>
https://developers.google.com/workspace/guides/auth-overview
인증과 인가는 ID와 리소스 각각을 검증하는데 사용되는 메커니즘입니다. 이 문서는 당신이 당신의 앱을 구현하기 전 알아야 할 인증과 인가의 핵심 용어를 알아봅니다.
참고: 이 문서는 구글 워크스페이스 API를 위한 인증과 인가에 중점을 둡니다. 이 문서의 특정한 정보는 다른 구글 API에 적용되지 않을 수 있습니다.
프로세스 개요
아래의 그림은 구글 워크스페이스 API 인증 및 인가의 상위 수준의 단계를 보여줍니다.
- 구글 클라우드 프로젝트와 앱 설정 : 개발하는 동안, API 키, 최종 사용자의 자격 증명 또는 서비스 계정 자격 증명으로 앱을 인증하기 위한 가격 증명과 인증 범위를 정의하는 구글 클라우드 콘솔을 앱 내에 등록합니다.
- 접근을 위한 앱 인증 : 앱이 실행될 때, 등록된 자격 증명이 평가됩니다. 앱이 최종 사용자로 인증하는 경우 로그인 프롬프트가 표시될 수 있습니다.
- 리소스 요청 : 앱이 구글 자원에 접근해야 할 경우 이전에 등록한 관련 접근 범위를 사용하여 구글에 요청합니다.
- 사용자 동의 요청 : 앱이 최종 사용자로 인증하는 경우, 구글은 유저가 요청된 데이터에 대한 접근을 앱에 부여할 지 결정할 수 있는 OAuth 동의 화면을 출력합니다.
- 리소스 승인 요청 전송 : 사용자가 접근 범위에 동의하면 앱은 자격 증명과 사용자가 승인한 접근 범위를 하나의 요청으로 묶습니다. 요청은 엑세스 토큰을 받기 위해 구글 인증 서버로 전송됩니다.
- 구글, 엑세스 토큰 반환 : 엑세스 토큰은 승인된 접근 범위의 리스트를 포함합니다. 만약 반환된 범위의 리스트가 요청했던 접근의 범위보다 제한적일 경우, 앱은 토큰으로부터 제한된 모든 기능을 비활성화합니다.
- 요청된 자원으로 접근 : 앱은 구글의 엑세스 토큰을 사용하여 관련 API를 호출하고 자원에 접근합니다.
- 새로 고침 토큰 받기 (선택사항) : 앱이 단일 엑세스 토큰의 생명주기를 넘어 구글 API에 접근해야 하는 경우 새로 고침 토큰을 얻을 수 있습니다.
- 더 많은 자원 요청 : 추가 접근이 필요한 경우 앱에서 사용자에게 새로운 접근 범위를 부여하도록 요청하여 엑세스 토큰을 위한 새로운 요청을 생성합니다. (3 ~ 6번)
중요 용어
아래는 인증과 인가와 관련된 용어의 리스트를 보여줍니다.
인증(Authentication)
사용자 혹은 사용자를 대신하는 앱을 포괄하는 주체가 자신이 누구인지 확인하는 행위입니다. 구글 워크스페이스 앱을 작성할 때, 다음과 같은 인증 종류를 반드시 알아야 합니다:
사용자 인증
사용자가 앱에 인증(로그인)하는 행위입니다. 사용자 인증은 앱에 등록된 사용자의 ID와 비밀번호를 사용하여 로그인을 하는 방식을 사용하여 주로 인증합니다. 사용자 인증은 구글로 로그인을 사용하여 앱과 통합할 수 있습니다.
앱 인증
사용자를 대신하여 구동 중인 앱이 구글 서비스로 직접 인증하는 행위입니다. 앱 인증은 일반적으로 앱 내에 있는 코드 속에 미리 생성된 자격 증명을 통해 수행됩니다.
인가(Authorization)
주체가 데이터에 접근하거나 작업을 수행하기 위해 필요한 승인 혹은 "권한". 인가 행위는 앱 내에 작성된 코드를 통해 수행됩니다. 이 코드는 앱이 사용자를 대신하여 작업하기를 원한다는 것을 사용자에게 알리고, 승인되는 경우 앱의 고유 자격 증명을 이용하여 데이터에 접근하거나 작업을 수행할 수 있는 엑세스 토큰을 얻습니다.
자격 증명(Credential)
소프트웨어 보안에 사용되는 식별 형태입니다. 인증의 관점에서, 자격 증명(credential)은 종종 사용자명/비밀번호를 조합한 것으로 표현됩니다. 구글 워크스페이스 API를 위한 인가적 관점에서 자격 증명(credential)은 인가 서버와 앱 개발자만이 알고 있는 특수한 비밀 문자열과 같은 식별 형태로 표현됩니다. 구글은 API 키, OAuth 2.0 Client ID, 서비스 계정과 같은 인가 자격 증명을 지원합니다.
API 키
구글 워크스페이스 공유 설정 내에서 '이 링크가 있는 인터넷상의 모든 사용자' 설정을 사용하여 공유된 구글 워크스페이스 파일 또는 Maps API를 사용하여 제공된 데이터와 공공 데이터에 대한 접근을 요청하는데 사용되는 자격 증명입니다.
OAuth2 Client ID
사용자가 소유한 데이터에 대한 접근을 요청하는 자격 증명입니다. 구글 워크스페이스 API를 사용하여 데이터에 대한 접근을 요청할 대 사용되는 기본 자격 증명입니다. 이 자격 증명은 사용자의 동의가 필요합니다.
Client secret
애플리케이션과 인가 서버 사이에만 공유되는 문자열입니다. client secret은 인증된 요청자에게만 토큰을 승인함으로써 사용자의 데이터를 보호합니다. 앱 내의 코드에는 절대 client secret을 포함하면 안됩니다.
서비스 계정 키
구글 서비스에 인가를 획득하기 위한 서비스 계정에 사용됩니다.
범위(Scope)
앱에 부여된 리소스 혹은 작업에 대한 접근 수준을 정의하는 OAuth 2.0 URI 문자열입니다. 구글 워크스페이스의 경우 승인 범위 URI에는 구글 워크스페이스 앱 이름, 접근하는 데이터 유형, 접근 수준이 포함됩니다. 앱 사용자는 요청된 범위를 검토하고 부여할 접근 권한을 선택할 수 있습니다. 그러면 구글 인증 서버는 엑세스 토큰을 이용해 앱으로 허용된 범위를 반환합니다. 자세한 내용은 앱의 범위를 설정하는 방법을 참조하십시오.
인가 서버(Authorization server)
엑세스 토큰을 이용하여 요청된 앱의 데이터나 작동에 대한 접근을 승인하는 구글 서버입니다.
인가 코드(Authorization code)
엑세스 토큰을 획득하기 위해 인가 서버에서 전송하는 코드입니다. 이 코드는 귀하의 애플리케이션이 웹 서버 앱이거나 an installed 앱인 경우에만 필요합니다.
리소스 서버
앱이 호출하고자 하는 API를 호스팅하는 서버입니다.
OAuth 2.0 framework
앱에서 '보안 위임된 접근' 혹은 앱 사용자를 대신하여 데이터 및 작업에 대한 접근을 제공하는 데 사용될 수 있는 표준입니다. 앱에서 사용하는 인증 및 인가 메커니즘은 OAuth 2.0 framework의 구현을 나타냅니다.
주체(Principle)
리소스에 대한 접근이 허가된 엔티티이며 식별자(ID, Identity)라고도 불립니다. 구글 워크스페이스 API는 구 종류의 주체를 제공합니다: 사용자 계정과 서비스 계정. 더 자세한 사항은, 주체를 참고해 주십시오.
데이터 타입
인증과 인가적 관점에서 데이터 타입은 앱이 접근하고자 하는 데이터를 소유한 엔티티를 의미합니다. 데이터 타입에는 세 종류가 있습니다.
공공 도메인 데이터
구글 maps 데이터와 같이 누구라도 접근할 수 있는 데이터입니다. 이 종류의 데이터는 주로 API 키를 이용해 접근합니다.
최종 사용자 데이터(End-user data)
특정 사용자의 구글 드라이브 파일과 같이 특정 사용자 혹은 집단에 속한 데이터입니다. 이 종류의 데이터는 주로 OAuth 2 client ID 혹은 서비스 계정을 통해 접근합니다.
클라우드 데이터
구글 클라우드 프로젝트가 소유한 데이터입니다. 이 종류의 데이터는 주로 서비스 계정을 통해 접근합니다.
사용자 동의(User conset)
앱이 데이터에 접근하고 사용자를 대신해 작동을 수행할 때 앱에 권한을 부여하기 위해 사용자가 수행하는 인가 절차입니다.
애플리케이션 종류(Application type)
귀하가 생성하고자 하는 앱의 종류입니다. 구글 클라우드 콘솔을 통해 자격 증명을 생성할 때, 애플리케이션 종류를 선택할 수 있습니다. 애플리케이션 종류는: 웹 애플리케이션(JavaScript), 안드로이드, 크롬 앱, iOS, TVs와 Limited Input divices, 데스크탑 앱("installed app"이라고도 불립니다), 그리고 UWP(Universal Widows Platform)이 있습니다.
서비스 계정
인증이 필요하거나 데이터에 접근하기 위한 인가가 필요한 사람이 아닌(non-human) 사용자를 대표할 수 있도록 의도된 특수한 형태의 구글 계정입니다. 애플리케이션은 구글 API를 호출해 서비스 계정의 식별자(ID)를 처리함으로 사용자가 직접적으로 관련되지 않습니다. 서비스 계정 그 자체로는 사용자 데이터에 접근할 수 없습니다. 데이터는 관례적으로 워크스페이스 API를 통해 접근 가능합니다. 그러나 서비스 계정은 domain-wide delegation of authority(권한에 대한 도메인-와이드 위임?)을 구현함으로써 사용자 데이터에 접근할 수 있습니다. 보다 자세한 사항은 서비스 계정 이해를 참조해 주십시오.
Domain-Wide delegation of authority
애플리케이션이 구글 워크스페이스 조직(organization) 내의 사용자를 대신하여 사용자 데이터에 접근할 수 있도록 허가할 수 있는 관리 기능입니다. Domain-wide delegation은 사용자 데이터의 관리 관련 업무를 수행하는데 이용될 수 있습니다. 이러한 방식으로 권한을 위임하기 위해서, 구글 워크스페이스 관리자는 OAuth 2.0을 사용해 서비스 계정을 사용합니다. 이 기능은 강력한 권한을 가지고 있기 때문에, domain-wide delegation of authority를 부여할 수 있는 권한은 최고 관리자에게로만 제한됩니다. 보다 자세한 사항은 서비스 계정으로의 Delegating domain-wide authority를 참조해 주십시오.
2-4. Configure the OAuth consent screen (OAuth 동의 화면 구성)
<이 장도 문서 양이 많아 원본 첨부 없이 진행합니다. 원본은 아래의 링크를 통해 확인할 수 있습니다.>
https://developers.google.com/workspace/guides/configure-oauth-consent
권한 부여를 위해 OAuth 2.0을 사용할 때, 구글은 귀하의 프로젝트에 대한 요약, 정책, 접근 범위에 대한 요청된 권한 등을 동의 화면에 사용자에게 출력합니다. 귀하의 앱의 OAuth 동의 화면을 구성하는 것은 사용자와 앱 리뷰어(reviewers)에게 출력될 화면을 구성하는 것입니다. 또한 추후에 앱을 출시하기 위해 등록하는 것을 의미합니다.
OAuth 2.0을 이용하는 모든 앱은 동의 화면 구성이 필요하지만 구글 워크스페이스 조직(organization) 외부의 사용자가 사용하는 앱의 범위만 나열하면 됩니다.
조언: 필수 동의 화면 정보에 관해 모르는 경우, 출시 이전 placeholder information을 이용할 수도 있습니다.
OAuth 동의 구성 & 앱 등록하기
- 구글 클라우드 콘솔을 여십시오.
- 왼쪽 상단, 메뉴 > APIs & Services > OAuth consent screen을 클릭하십시오.
- 앱의 종류를 선택한 후, create를 클릭하십시오.
- 앱 등록 형식을 완성한 후, save and continue을 클릭하십시오.
- 만약 구글 워크스페이스 조직 외부에서 사용할 앱을 만드는 경우, Add or Remove Scopes를 클릭하십시오. 귀하의 앱에 필요한 권한 범위를 추가 및 확인한 후 Save and Continue를 클릭하십시오.
- 참고: 일부 범위는 구글의 추가 검토가 필요합니다. 구글 워크스페이스 조직 내부적으로만 사용하는 앱의 경우 범위가 동의 화면에 나열되지 않으며 제한되거나 민감한 범위를 사용하더라도 구글의 검토가 필요하지 않습니다. For apps used only internally by your Google Workspace organization, scopes aren't listed on the consent screen and use of restricted or sensitive scopes does not require further review by Google. 자세한 사항은 아래에 기술한 '앱에 부여할 범위 선택하기'를 살펴보시기 바랍니다.
- "테스트 사용자" 아래, Add users를 클릭하십시오. 귀하의 이메일과 인증이 필요한 다른 테스트 사용자를 입력한 후 Save and Continue를 클릭하십시오.
- 귀하의 앱 등록 요약을 검토하십시오. 수정하고 싶으면 Edit을, 그렇지 않다면 Back to Dashboard를 클릭하십시오.
앱에 부여할 범위 선택하기
귀하의 앱에 부여할 접근 수준을 설정하기 위해 권한 범위를 명시하고 확인할 필요가 있습니다. 권한 범위는 구글 워크스페이스 앱 이름, 접근 가능한 데이터 종류, 접근 수준을 포함한 OAuth 2.0 URI 문자열입니다.
예를 들어, 아래의 범위는 구글 캘린더 설정을 볼 수 있는 접근 권한을 부여하지만 수정은 할 수 없습니다.
https://www.googleapis.com/auth/calendar.settings.readonly
가능한 범위에 관한 정보는 구글 API를 위한 OAuth 2.0 범위를 참고해 주십시오.
범위 범주
일부 범위는 부여된 접근 수준 혹은 유형으로 인해 추가 검토 및 요구 사항이 필요합니다. 다음은 고려해야 할 범위 유형입니다.
앱에 필요한 범위 선택
개발을 시작하기 전, 사용할 범위를 식별하는 것이 좋습니다. 이렇게 하면 구글 클라우드 콘솔에서 앱 구성 속도가 빨라지고 추가 보안 검토를 준비하는 데 도움이 됩니다.
앱의 승인 범위를 선택하려면:
- 위 단계에서 OAuth 동의 화면을 구성하는 동안 Add or remove scopes를 클릭하십시오. GCP 프로젝트에서 사용 설정한 각 API의 범위 목록이 포함된 패널이 나타납니다.
- 앱에 필요한 최소 접근 수준을 제공하는 범위를 선택한 다음 update를 클릭하십시오.
- 민감하지 않은 범위, 민감한 범위 및 제한된 범위의 세 섹션 각각에 나열된 범위를 컴토합니다. "귀하의 민감한 범위" 또는 "제한된 범위" 섹션에 나열된 범위의 경우 불필요한 추가 검토를 피하기 위해 민감하지 않은 대체 범위를 식별하십시오.
- 범위 목록이 완료되면 Save and continue를 클릭하십시오.
2-4. Create access credentials (접근 자격 증명 생성)
<이하 필요하다고 판단되는 부분만 번역>
자격 증명은 앱이 구글 워크스페이스 API를 호출할 수 있도록 구글 인가 서버에서 생성하는 토근을 획득하는데 사용됩니다.
(자격 증명의 종류는 API 키, OAuth client ID, 서비스 계정이 있다.)
API 키 자격 증명
API는 대문자와 소문자, 숫자, 대시를 포함한 문자열. ex) a4db08b7-5729-4ba9-8c08-f2df493465a1
API 키를 이용한 자격 증명은 "이 링크가 있는 모든 인터넷 사용자"와 같이 공개적으로 사용 가능한 데이터에 익명으로 접근하는데 사용됨.
키를 생성하기 위해:
- 구글 클라우드 콘솔을 연다.
- 왼쪽 상단 메뉴 > APIs & Services > Credentials를 클릭한다.
- Create credentials > API Key를 누른다.
- 새로운 API 키가 출력될 것이다. (API 키는 프로젝트 자격 증명 섹션의 "API Keys"에서도 확인 가능)
- 추가적인 설정이 필요하거나 API 키에 더 많은 제한을 두고 싶은 경우 Restrict key를 누른다.
OAuth 클라이언트 ID 자격 증명
최종 사용자로 인증하고 앱의 사용자 데이터에 접근하려면 하나 이상의 OAuth 2.0 클라이언트 ID가 필요하다.
클라이언트 ID는 구글의 OAuth 서버에서 단일 앱을 식별하는데 사용됨. 앱이 여러 플랙폼에서 실행되는 경우 각 플랫폼에 대해 별도의 클라이언트 ID를 만들어야 함.
앱 종류가 다양하기 때문에 각 종류에 따라 OAuth 클라이언트 ID를 만드는 방법이 다른 것 같다. 그 중 나는 웹 애플리케이션을 만들 예정이므로 웹 애플리케이션 파트만 보도록 하겠다.
- 구글 클라우드 콘솔을 연다.
- 왼쪽 상단, 메뉴 > APIs & Services > Credentials 클릭
- Create Credentials > OAuth client ID 클릭
- Application type > Web application 클릭
- "Name" 영역에 자격 증명 이름을 입력. 이 이름은 클라우드 콘솔에만 보여짐.
- 앱과 관련된 승인된 URI를 추가
- 클라이언트 측 앱(Javascript) - 승인된 Javascript 원본에서 Add URI를 클릭. 이후 브라우저 요청에 사용될 URI를 입력. 이것은 애플리케이션이 OAuth 2.0 서버에 API 요청을 보낼 수 있는 도메인을 식별.
- 서버 측 앱(Java, Python, .NET 등) - "승인된 리다이렉션 URI"에서 Add URI를 클릭. 그 후 OAuth 2.0 서버가 응답할 수 있는 endpoint URI를 입력.
- Create 클릭. OAuth 클라이언트 생성 화면이 나타나고 새 클라이언트 ID와 클라이언트 암호가 표시됨.
- 클라이언트 ID를 적어둬야 함. 암호는 웹 애플리케이션에서는 사용되지 않음.
- OK를 클릭. 새로 생성된 자격 증명이 "OAuth 2.0 Client IDs" 밑에 표시됨.
서비스 계정 자격 증명 생성
- 구글 클라우드 콘솔을 연다.
- 왼쪽 상단 메뉴 > IAM & Admin > Service Accounts 클릭
- Create service account 클릭
- 세부 사항을 작성한 후 Create and continue를 클릭 (ID는 구글이 만들어준다. ID를 바꾸고 싶으면 서비스 계정 ID 영역에서 ID를 수정할 수 있다!)
- 선택사항 : 리소스에 대한 역할 권한 부여
- Continue 클릭
- 선택사항 : 서비스 계정을 관리할 수 있는 사용자나 조직을 입력.
- Done 클릭
서비스 계정에 자격 증명 부여하기
public / private 키를 쌍으로 한 형태로 자격 증명을 얻어야 한다. 이 자격 증명은 서비스 계정에 행동 권한을 부여하기 위해 앱 내의 코드에서 사용됨.
- 구글 클라우드 콘솔을 연다.
- 왼쪽 상단, 메뉴 > IAM & Admin > Service Accounts를 클릭한다.
- 서비스 계정을 선택한다.
- Keys > Add keys > Create new key를 누른다.
- JSON을 선택하고 Create를 누른다.
- 새로운 public / private 키 쌍이 시스템 내에 새 파일로 다운로드됨. 이 파일은 이 키의 유일한 복사본. 키를 안전하게 저장하는 방법은 서비스 계정 키 관리 참조.
- Close 클릭
선택사항: 서비스 계정에 domain-wide delegation 설정하기
일단 패스
3. 구글 캘린더 빠른 시작하기
빠른 시작은 Google Workspace API를 호출하는 간단한 앱을 구성하고 실행하는 방법을 설명하는 문서입니다.
빠른 시작은 인증 및 권한 부여 흐름의 일부 세부 정보를 숨기는 API 클라이언트 라이브러리를 사용합니다. 자신의 앱에 클라이언트 라이브러리를 사용하는 것이 좋습니다.
전제 조건으로 빠른 시작에서는 인증 및 권한 부여를 활성화해야 합니다. Workspace API에 대한 인증 및 권한 부여에 대해 잘 모르는 경우 인증 및 권한 부여 개요를 읽으십시오 .
선호하는 프로그래밍 언어에 해당하는 빠른 시작을 클릭합니다. (각 언어에 대한 빠른 시작이 다 다르기 때문에 언어를 선택할 수 있는 페이지를 링크하고 글을 마무리 하도록 하겠다.)
https://developers.google.com/calendar/api/quickstart/quickstarts-overview