처음 100개 파일 표시 & Google Drive의 폴더

1. Google Workspace API 사용

이 Codelab에서는 Google Workspace (이전 명칭 G Suite) HTTP 기반 RESTful API를 사용하는 방법을 소개합니다. 이 예시는 간결성과 가용성을 위해 Python으로 작성되지만, 선호하는 개발 언어를 사용하도록 선택할 수도 있습니다. 이 과정에서는 Developer Console을 사용하여 프로젝트를 생성/관리하고 승인 사용자 인증 정보를 얻고 API 클라이언트 라이브러리를 설치하는 방법과 같은 소개 주제를 다룹니다. 형식을 처리했으므로 처음 100개의 파일을 표시하고 Google Drive의 폴더에 있는 폴더를 찾을 수 있습니다.

학습할 내용

  • Google/Cloud Developers Console을 사용하여 프로젝트 만들기
  • 획득 및 앱에서 OAuth2 애플리케이션 사용자 인증 정보 사용
  • Google API 클라이언트 라이브러리 사용에 대해 알아봅니다.
  • Google 및 Google Workspace API
  • Google Drive API를 사용하여 파일 및 폴더 정보 얻기

필요한 항목

  • 인터넷 및 웹브라우저 액세스
  • Google 계정 (Google Workspace 계정에 관리자의 승인이 필요할 수 있음)
  • Linux 및 Linux와 같은 POSIX 규격 시스템에 대한 기본 지식 맥 OS X
  • 코드 편집기 또는 셸 명령어로 소스 파일을 만들 수 있습니다.
  • Python (2 또는 3)를 사용한 기본 기술이지만 지원되는 모든 언어를 사용할 수 있음
  • Google Drive의 일부 파일 또는 폴더

2. 설문조사

이 Codelab 튜토리얼을 어떻게 사용할 계획인가요?

읽기만 할 계획입니다 읽은 다음 연습 활동을 완료할 계획입니다

Google Workspace 개발자 도구 및 서비스 이용 경험을 평가해 주세요. API는 어떨까요?

<ph type="x-smartling-placeholder"></ph> 초보자 중급 숙련도

3. 개요

이 Codelab에서는 다음 작업을 수행하는 방법을 알아봅니다.

  1. Python용 Google API 클라이언트 라이브러리 다운로드
  2. Google/Cloud Developers Console에서 새 프로젝트 만들기
  3. 앱에 필요한 사용자 인증 정보 가져오기
  4. 이 사용자 인증 정보를 사용하여 Google Drive API에 액세스합니다.

Python을 사용하지 않으려면 원하는 개발 도구 (지원되는 언어의 클라이언트 라이브러리는 여기에서 확인 가능)로 Codelab을 구현하고 Python 예시를 (실행 가능한) 의사코드로 참조하기만 하면 됩니다.

4. Python 환경 확인

이 Codelab을 사용하려면 Python 언어를 사용해야 합니다. 하지만 Google API 클라이언트 라이브러리에서 많은 언어를 지원하므로 원하는 개발 도구에서 이와 동등한 것을 빌드하고 Python을 의사코드로 사용해도 됩니다. 특히 이 Codelab은 Python 2 및 3을 지원하지만, 가능한 한 빨리 3.x로 이동하는 것이 좋습니다.

Cloud Shell은 사용자가 Cloud 콘솔에서 바로 사용할 수 있는 편의성으로 로컬 개발 환경이 필요하지 않습니다. 따라서 이 튜토리얼은 웹브라우저를 사용하여 클라우드에서만 수행할 수 있습니다. Cloud Shell은 GCP 제품으로 계속 개발 중이거나 계속 개발할 계획인 경우에 특히 유용합니다. API에 액세스할 수 있습니다 특히 이 Codelab에서는 Cloud Shell에 두 Python 버전이 모두 미리 설치되어 있습니다.

Cloud Shell에는 IPython도 설치되어 있습니다. 특히 데이터 과학 또는 머신러닝 커뮤니티의 일원이라면 더 높은 수준의 대화형 Python 인터프리터인 Cloud Shell을 권장합니다. 그렇다면 IPython이 Jupyter 노트북과 Google 연구팀에서 호스팅하는 Colab(Jupyter 노트북)의 기본 인터프리터입니다.

IPython에서는 Python 3 인터프리터가 선호되지만 3.x를 사용할 수 없는 경우 Python 2로 대체됩니다. Cloud Shell에서 IPython에 액세스할 수 있지만, 로컬 개발 환경에 IPython을 설치할 수도 있습니다. ^D(Ctrl-d)로 종료하고 종료 제안을 수락합니다. ipython 시작의 예시 출력은 다음과 같습니다.

$ ipython
Python 3.7.3 (default, Mar 4 2020, 23:11:43)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.13.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]:

IPython을 선호하지 않을 경우에는 표준 Python 대화형 인터프리터(Cloud Shell 또는 로컬 개발 환경) 사용도 문제 없이 허용됩니다(^D로 종료).

$ python
Python 2.7.13 (default, Sep 26 2018, 18:42:22)
[GCC 6.3.0 20170516] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 
$ python3
Python 3.7.3 (default, Mar 10 2020, 02:33:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

또한 이 Codelab에서는 pip 설치 도구(Python 패키지 관리자 및 종속성 리졸버)가 있다고 가정합니다. 버전 2.7.9 이상 또는 3.4 이상과 함께 제공됩니다. 이전 Python 버전을 사용하는 경우 이 가이드에서 설치 안내를 참조하세요. 권한에 따라 sudo 또는 수퍼유저 액세스 권한이 필요할 수 있지만, 일반적이지는 않습니다. 또한 특정 Python 버전의 경우 pip2 또는 pip3를 명시적으로 사용하여 pip를 실행할 수 있습니다.

이 Codelab의 남은 부분에서는 Python 3를 사용한다고 가정합니다. Python 2에서의 방법이 3.x와 크게 다른 경우에는 해당 안내가 제공됩니다.

*가상 환경 만들기 및 사용

이 섹션은 선택사항이며 이 Codelab에 가상 환경을 사용해야 하는 사용자에게만 필요합니다(위에 표시된 경고 사이드바 참조). 컴퓨터에 Python 3만 있으면 단순히 이 명령어를 실행하여 my_env라는 가상 환경을 만들 수 있습니다(필요에 따라 이름 변경 가능).

virtualenv my_env

하지만 컴퓨터에 Python 2 및 3가 모두 있으면 다음과 같이 -p flag를 사용하여 Python 3 가상 환경을 설치하는 것이 좋습니다.

virtualenv -p python3 my_env

다음과 같이 '활성화'를 수행하여 새로 만든 가상 환경에 들어갑니다.

source my_env/bin/activate

다음과 같이 셸 프롬프트 앞에 가상 환경 이름이 표시되는 것을 보고 가상 환경에 들어왔는지 확인할 수 있습니다.

(my_env) $ 

이제 모든 필요한 패키지를 pip install하고, 이 환경 내에서 코드를 실행할 수 있습니다. 환경이 뒤죽박죽되거나, Python 설치가 손상된 경우에도 나머지 시스템에 영향을 주지 않고 전체 환경을 없앨 수 있다는 장점도 있습니다.

5. Python용 Google API 클라이언트 라이브러리 설치

이 Codelab을 사용하려면 Python용 Google API 클라이언트 라이브러리를 사용해야 하므로 간단한 설치 프로세스이거나 아무것도 하지 않아도 됩니다.

편의를 위해 Cloud Shell을 사용하는 것이 좋습니다. 이 가이드 전체는 클라우드에서 웹브라우저로 완료할 수 있습니다. Cloud Shell을 사용하는 또 다른 이유는 많이 사용되는 많은 개발 도구와 필요한 라이브러리가 이미 사전 설치되어 있기 때문입니다.

*클라이언트 라이브러리 설치

(선택사항) 클라이언트 라이브러리를 이미 설치한 로컬 환경 또는 Cloud Shell을 사용하는 경우 이 단계를 건너뛸 수 있습니다. 로컬로 개발을 수행 중이고 라이브러리를 설치하지 않았거나 확실하지 않은 경우에만 이를 수행하면 됩니다. 가장 쉬운 방법은 pip(또는 pip3)를 사용하여 설치를 수행하는 것입니다(필요한 경우 pip 자체 업데이트 포함).

pip install -U pip google-api-python-client oauth2client

설치 확인

이 명령은 종속된 모든 패키지는 물론 클라이언트 라이브러리를 설치합니다. Cloud Shell 또는 고유 환경을 사용하든 간에 필수 패키지를 가져와서 클라이언트 라이브러리가 설치되었는지 확인하고 가져오기 오류(또는 출력 오류)가 없는지 확인합니다.

python3 -c "import googleapiclient, httplib2, oauth2client"

대신 Python 2(Cloud Shell에서)를 사용하는 경우 지원이 종료되었다는 경고가 표시됩니다.

*******************************************************************************
Python 2 is deprecated. Upgrade to Python 3 as soon as possible.
See https://cloud.google.com/python/docs/python2-sunset

To suppress this warning, create an empty ~/.cloudshell/no-python-warning file.
The command will automatically proceed in seconds or on any key.
*******************************************************************************

가져오기 '테스트' 명령어를 성공적으로 실행할 수 있으면(오류/출력 없음), Google API 사용을 시작할 수 있습니다.

요약

이 Codelab은 입문용이므로 Google 및 Google Workspace API를 처음 사용하는 것으로 가정합니다. 이미 프로젝트를 만들고 사용자 승인 'OAuth 클라이언트 ID'를 만들어 본 경험이 있는 경우 그렇다면 기존 프로젝트를 만들거나 재사용하고, 기존 OAuth 클라이언트 ID를 만들거나 재사용하고, 다음 두 모듈을 건너뛰고 바로 'Drive 파일 표시 및 폴더 애플리케이션' 또는 '고급 개발자 콘솔 사용법'으로 내려가서 최소한의 지침으로 해당 단계를 검토하세요.

6. Cloud 콘솔에서 프로젝트 지정

Google API를 사용하는 애플리케이션에는 프로젝트가 필요합니다. 이러한 API는 Google Cloud Developers Console 또는 간단히 'devconsole'에서 관리됩니다. 이 Codelab에서는 Google Drive API만 사용할 것이므로 다음과 같은 매직 링크 (1단계 아래)가 있습니다.

  • Devconsole로 이동
  • 새 프로젝트를 만들거나 기존 프로젝트를 선택하는 방법을 안내합니다.
  • 자동으로 Drive API 사용 설정

한번 해 보자!

  1. console.developers.google.com/start/api?id=drive로 이동하여 Google 계정에 로그인합니다.
  2. 아직 프로젝트가 없는 경우 Google API 서비스 약관에 동의하라는 다음 화면이 표시됩니다.

e3b2076ba58a7cd7.png 약관에 동의하면 '내 프로젝트'라는 이름의 새 프로젝트가 생성됩니다. 자동으로 사용 설정되고 Drive API가 자동으로 사용 설정됩니다. 3. 이미 프로젝트를 만들었다면 (아마도 이전 Codelab인 경우) 다음 화면이 대신 표시됩니다. 50b3b8ace6721f1f.png 프로젝트 만들기 드롭다운을 클릭하면 기존 프로젝트를 선택하거나 실제로 새 프로젝트를 만듭니다. 69db3867445ad9e5.png 선택을 마치면 (신규 또는 기존 프로젝트) Drive API가 자동으로 사용 설정됩니다. 4. 다음 확인을 통해 Drive API가 사용 설정되었음을 알 수 있습니다. 365e7de1377493bb.png 5. 사용자 인증 정보로 이동을 클릭하여 다음 단계로 이동합니다.

7. *API 요청 승인(사용자 승인)

사용자 계정 승인 사용자 인증 정보를 이미 만들었고 이 프로세스에 익숙한 경우에는 이 섹션을 건너뛸 수 있습니다. 다른 기술을 사용하는 서비스 계정 승인과는 다릅니다. 따라서 아래 단계를 계속하세요.

승인 소개(및 일부 인증)

API에 요청을 수행하기 위해서는 애플리케이션이 적절한 승인을 수행해야 합니다. 비슷한 단어인 인증은 로그인 사용자 인증 정보를 설명합니다. 사용자가 Google 계정에 로그인할 때는 로그인 및 비밀번호를 사용하여 자신을 인증해야 합니다. 인증 후에는 Cloud Storage에 있는 Blob 파일 또는 Google 드라이브에 있는 사용자의 개인 파일과 같은 데이터에 액세스할 수 있도록 사용자 또는 사용자의 코드승인됩니다.

Google API는 여러 유형의 승인을 지원하지만, 이 Codelab의 예시 애플리케이션은 최종 사용자의 데이터에 액세스하므로 Google Workspace API 사용자에게 가장 일반적인 승인은 사용자 승인입니다. 이러한 최종 사용자는 자신의 데이터에 액세스하기 위해 귀하의 앱에 대해 권한을 부여해야 합니다. 즉, 귀하의 코드가 사용자 계정 OAuth2 사용자 인증 정보를 획득해야 합니다.

사용자 승인을 위해 OAuth2 사용자 인증 정보를 가져오기 위해서는 API 관리자로 돌아가고 왼쪽 탐색에서 '사용자 인증 정보' 탭을 선택합니다.

Y33PZ_rJC1y7NH7Rrvq1kN_WxZ9CppDGJK8tTSaha298Jlm5pMqgnyweIO4oX34fcLy0_VI4gihYu5wpEM_LeJg1iDAFoidhUVyfqJX3QTzODQ_OGjHLXYBxPpUvihCJi9JGwvMREw

여기에 도착하면 3개의 개별 섹션에 모든 사용자 인증 정보가 표시됩니다.

ComE4qh76dwZbIehkDUm1QawHGia_qVe7w7rkmgbeo_wjWS--kqXCt4_zvm55iy_RXA8dKYKvBxIKazkcYQ8871SA_kNslbvum_n1Ju4k9qJJSMtDhPAnofcvIlqlKm1nu7PBQhmEg

첫 번째는 API 키에 대한 것이고, 두 번째는 OAuth 2.0 클라이언트 ID, 마지막은 OAuth2 서비스 계정을 위한 것입니다. 여기에서는 가운데 항목을 사용합니다.

사용자 인증 정보 만들기

사용자 인증 정보 페이지에서 위에 있는 + 사용자 인증 정보 만들기 버튼을 클릭하면 'OAuth 클라이언트 ID'를 선택할 수 있는 대화상자가 표시됩니다.

C7jTddfrczo3GewPGCxbxX13GawtFc6FGvAPFusPc_IW-tr5M6xgXd1OzOHOUTo86WDa9fXiCITogv9b3wAgOcYM7xS3AmVNaPdTxbAynIe_sia2_x3LEPsBrdbX8NjeI2WaHRioOA

다음 화면에서는 앱의 승인 '동의 화면'을 구성하고 애플리케이션 유형을 선택하는 두 가지 작업을 수행할 수 있습니다.

El9_aqPQ6Q9hOsOp3JUC5qnCm_A_BVI-oCEfPk_MsvybnWBmC5lT6CtXSoZ7EQoFzrcBEzo4zF9s8CbhXyo0e-eSY3pZ1zg0BRvT0YssMMhbzEG-gP_jiO8v9q9HYTjg-QW5jJ0RDA

동의 화면을 설정하지 않으면 Console에 경고가 표시되고, 지금 작업을 수행해야 합니다. (동의 화면이 이미 설정되었으면 이를 건너뛰고 다음 단계를 진행합니다.)

'동의 화면 구성'을 클릭합니다. 여기에서 '외부' 앱 (또는 Google Workspace[이전의 'Google Workspace'] 고객인 경우 '내부')

5w-9R6gPvUHFzODZxXy-0GEhL8ZGDGNea3QtMp1FFYDv5DJ_MIDD21NEh3CzI-GKNzy6bkhH7bohxOG8icQTegiWlavOQhQqhSy7K31Ma3YTI9aAP3P-LmTBanPslX1cnjKLVZBi8A

이 연습에서는 Codelab 샘플을 게시하지 않기 때문에 무엇을 선택하든 중요하지 않습니다. 대부분의 경우 '외부'를 선택하여 더 복잡한 화면으로 연결되지만, 실제로 맨 위에 있는 '애플리케이션 이름' 필드만 작성하면 됩니다.

8e9z_RQz8lumYbDIcBvm57_Gpptn9uhrVQHoRzJ01AJNOFmXloDO7Eg3hhzJZZIU2F5rR0MxTCw-oXVFCq683xUwD4O33pXeuFsOMtM8EZhyjDoYc8Kv4hEoaG0Ztq9ePx6De7YmfA

지금은 애플리케이션 이름만 필요하므로, 수행 중인 Codelab을 나타내는 사람을 선택한 후 저장을 클릭합니다.

OAuth 클라이언트 ID 만들기(사용자 계정 인증)

이제 사용자 인증 정보 탭으로 돌아가서 OAuth2 클라이언트 ID를 만듭니다. 여기에는 만들 수 있는 여러 OAuth 클라이언트 ID가 표시됩니다.

f8reuhsxOUNLcVrEIyRVsmP_fX_ceIlLvEKql1YHwSPW9jk9Mm9fJ0UlfUoi8eRN3QQXar4xtpo071zj6LSczNN7TYY8zB96Dn6ICZuvCAtjIgJSKdMSlX-ZhMuSWFpxxv661aUemw

기타에 해당하는 명령줄 도구를 개발하는 중이므로, 이를 선택하고 만들기 버튼을 클릭합니다. 만들려는 앱을 나타내는 클라이언트 ID를 선택하거나 단순히 일반적으로 'Other client N'인 기본 이름을 선택합니다.

사용자 인증 정보 저장

  1. 새 사용자 인증 정보 대화상자가 나타나면 확인을 클릭하여 닫습니다.

rAwekj_GNEuVwGbZOYYlGDQjlu4flE61OPEZIUmwMI5vGi3W365UwVCxi0mVNhg4WZSSczZywrZZ6NDM_U0FJ4b-TOIMEC189uybOJjgn8F_axesVMopel9RlehRBXdEFhN4d41WGQ

  1. 사용자 인증 정보 페이지로 돌아가서 'OAuth2 클라이언트 ID'가 나올 때까지 아래로 스크롤합니다. 섹션에서 새로 만든 클라이언트 ID의 맨 오른쪽 하단에 있는 다운로드 아이콘 aAmje6kT_xSUM4BKIlPREpjosx7C_xxwpWqBgiGVfVWxQ8nnQOfxTPhuU0QwSnmbjykZffGrqyP1nnKrEQ7D7OqYaGw_Uzscs9gX2RwwP4AmvtHIiTFLa0gkprzJSjG9pQSx7HtmSQ을 찾아 클릭합니다. x-vb-sKZy-X8a1X4uTsBWotSd4wn0PGt4mHMNv6DUrq5J5ihpujUyTiIVr5SHw0p2ZDy0KTP-zqOaFX-Az9BYDWG90KNFmsRLTUOo1mUVk7dYRJiK3VwYJNU0bbxjsbbpqcTr5_oLw
  2. 그러면 client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json과 같은 이름의 파일을 다운로드 폴더에 저장하는 대화상자가 열립니다. client_secret.json(샘플 앱에 사용되는 이름)과 같이 쉬운 이름으로 줄이고, 이 Codelab에서 샘플 앱을 만드는 디렉터리/폴더에 저장하는 것이 좋습니다.

요약

사용자 인증 정보를 사용하여 앱에서 Drive API에 액세스할 수 있습니다. OAuth 클라이언트 ID의 목적은 사용자가 Google Drive의 데이터에 액세스할 수 있는 권한을 에 부여해야 한다는 것입니다.

참고: '마법사'를 사용하지 않고 수동으로 프로젝트를 만들고, API를 사용 설정하고, 사용자 인증 정보를 가져오는 방법을 자세히 알아보세요. 를 참고하세요.

8. Drive 파일 및 폴더 애플리케이션

로컬 개발 환경 또는 Cloud Shell에서 client_id.json 사용자 인증 정보 파일이 있는 디렉터리와 동일한 디렉터리에 drive_list.py라는 새 Python 파일을 만들고 아래 코드 줄을 추가합니다.

from __future__ import print_function

from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
    creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))

files = DRIVE.files().list().execute().get('files', [])
for f in files:
    print(f['name'], f['mimeType'])

애플리케이션 구조

이 애플리케이션에는 세 가지 기본 섹션이 있습니다.

  1. 라이브러리 기능을 가져오기 위한 Python 가져오기
  2. 애플리케이션 사용자 인증 정보 가져오기
  3. 파일 가져오기 및 폴더 이름 및 사용자의 Google 드라이브에 있는 MIME 유형 및 디스플레이

참고: 추가 학습을 위해 이 Codelab을 마친 후 코드를 더 자세히 살펴보고 한 줄씩 설명을 검토할 수 있습니다.

애플리케이션 실행

파일 이름을 drive_list.py와 같이 지정합니다. 스크립트를 처음 실행할 때는 Drive(귀하의)에서 사용자 파일에 액세스하도록 승인을 받지 않은 상태입니다. 실행이 일시 중지되고 다음과 같이 출력이 표시됩니다.

$ python3 ./drive_list.py
/usr/local/lib/python3.6/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory
 warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

Your browser has been opened to visit:
  https://accounts.google.com/o/oauth2/auth?client_id=LONG-STRING.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8080%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

 --noauth_local_webserver

로컬 개발 환경 사용

브라우저 창이 열리면서 명령줄 스크립트가 일시중지되고 OAuth2 권한 대화상자가 표시됩니다.

c2648f37bcb7a0c1.png

여기서 애플리케이션이 SCOPES 변수를 통해 코드가 요청하는 권한을 사용자에게 요청합니다. 이 경우에는 사용자의 Google Drive에서 파일 메타데이터를 볼 수 있습니다. 예. 코드에서는 이러한 권한 범위가 URI로 표시되지만 OAuth2 흐름 대화상자 창에서 언어로 지정된 언어로 변환됩니다. 사용자는 요청된 권한을 명시적으로 승인해야 합니다. 그렇지 않으면 '실행 흐름'입니다. 일부에 예외가 발생하고 스크립트가 더 이상 진행되지 않습니다.

참고: 여러 브라우저를 사용하는 일부 사용자의 경우 선호하지 않는 브라우저에서 승인 요청이 표시될 수 있습니다. 이 경우 사용하지 않을 브라우저 창에서 전체 URL을 복사한 다음 사용하려는 브라우저의 주소 표시줄에 붙여넣으면 됩니다.

Cloud Shell 사용

주의를 기울이지 않고 Cloud Shell에서 프로그램을 실행했다면 브라우저 창이 열리지 않아 문제가 발생한 것입니다. 하단에 표시된 아래 진단 메시지가 귀하를 기다리고 있습니다.

If your browser is on a different machine then exit and re-run this
application with the command-line parameter

 --noauth_local_webserver

이 방법으로 실행하면 다음 출력이 대신 표시됩니다.

$ python3 drive_list.py --noauth_local_webserver
/usr/local/lib/python3.7/site-packages/oauth2client/_helpers.py:255: UserWarning: Cannot access storage.json: No such file or directory
 warnings.warn(_MISSING_FILE_MESSAGE.format(filename))

Go to the following link in your browser:

  https://accounts.google.com/o/oauth2/auth?client_id=xxx.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly.metadata&access_type=offline&response_type=code

Enter verification code:

안내에 따라 해당 URL을 사용하는 다른 브라우저 탭으로 이동하면 위에서 설명한 로컬 개발 환경과 거의 동일한 환경을 경험할 수 있습니다. 주요 차이점은 마지막에 Cloud Shell에 입력할 인증 코드가 있는 화면이 하나 더 표시되는 것입니다.

f6da2c335fb7c6a.png

이 코드를 잘라서 터미널 창에 붙여넣습니다.

요약

사용자가 '허용'을 클릭하거나 인증 코드를 프롬프트에 붙여넣으면 앱이 계속 실행되므로 Drive 파일/폴더 및 MIME 유형으로 구성된 출력이 표시될 것으로 예상됩니다. 다음은 테스트 계정의 예입니다.

$ python3 ./drive_list.py
Travel expenses application/vnd.google-apps.spreadsheet
Gmail Add-ons codelab application/vnd.google-apps.script
Google Workspace Developer Intro application/vnd.google-apps.presentation
Baseball Sheets application/vnd.google-apps.folder
My Resume application/vnd.google-apps.document
  . . .

연속적인 실행에서는 인증 라이브러리에 의해 캐시되어 더 이상 승인을 요청하는 메시지가 표시되지 않고 바로 출력으로 이동합니다. 단말기에서 문서를 보는 것은 처음이지만 그리 흥미진진하지 않습니까? Google은 그렇다고 생각합니다.

9. 결론

이제 Drive API의 기능을 자세히 알아보거나 다른 Google Workspace (Gmail, Google Docs, Sheets, Slides, Calendar) 및 기타 Google API (지도, 애널리틱스, YouTube 등)를 살펴볼 수 있습니다. 끝까지 읽어주셔서 감사합니다.

이 Codelab에서 다루는 코드는 GitHub 저장소(github.com/googlecodelabs/gsuite-apis-intro)에서도 확인할 수 있습니다. 이 Codelab을 저장소와 동기화된 상태로 유지하는 것이 목표입니다. 다음으로 넘어가 볼까요? 다음은 이 Codelab에서 다룬 자료를 자세히 살펴보거나 Google 기술에 프로그래매틱 방식으로 액세스하는 다른 방법을 알아보는 데 도움이 되는 다양한 리소스입니다.

앞서 언급했듯이 일반 Python 개발자가 아니라면 원하는 개발 언어로 이 Codelab 예를 다시 실행해 보세요. 지원되는 언어에 대한 클라이언트 라이브러리는 여기에서 확인할 수 있습니다.

추가 연구

Drive API를 사용해 보았습니다. 다음은 기술을 더욱 발전시키는 데 도움이 되는 몇 가지 권장 연습입니다.

  1. ZIP 파일: 여러 ZIP 보관 파일을 Drive에 백업하는 애플리케이션을 작성하고 즉시 압축을 풀어 각 ZIP 파일 이름이 파일이 들어 있는 폴더의 이름이 되도록 합니다. 추가 크레딧: Drive 폴더가 다른 폴더 안에 삽입된 다른 ZIP 파일 내에서 재귀 ZIP 보관 파일을 지원합니다. 포기하는 경우 이 Node.js 샘플 앱을 참조하세요.
  2. 사진 앨범: Google Drive에 여러 이미지를 업로드하는 사진 앨범 생성 도구의 시작 부분을 작성하여 타임스탬프 및 각 이미지를 별도의 폴더로 정리합니다. 있습니다. 추가 크레딧: 오픈소스 이미지 조작 라이브러리를 찾아 각 폴더의 모든 사진을 연결하여 여행, 저녁 식사 등 내가 경험한 이벤트를 나타냅니다.
  3. GCP 살펴보기: Google Workspace와 Google Cloud Platform (GCP)을 함께 연결하는 앱을 작성합니다. Google Drive의 이미지 파일을 Google Cloud Storage (GCS)의 또 다른 '클라우드의 파일 스토리지'에 백업하는 도구를 작성합니다. 솔루션을 제공합니다 GCS는 고급 클라이언트 라이브러리 때문에 Drive보다 사용이 더 간단합니다.
  4. 분석 및 기록: 백업된 각 이미지를 Google Cloud Vision API에 전달하고 상위 (3, 5, 10) '라벨'을 획득하여 분석하여 솔루션을 3단계로 확장합니다. 볼 수 있습니다 각 이미지에 대해 Cloud Vision의 분석과 GCS의 백업된 위치를 포함하는 Google 시트에 행을 작성합니다. 포기하는 경우 이 Python Codelab을 참고하세요.

10. 추가 리소스

문서

뉴스 및 업데이트

기타 Codelab

초급

중급

고급

참조 앱

11. *애플리케이션 상세 설명

선택사항인 이 섹션은 세션이 끝난 후 발생한 격차를 메우거나 추가 연구를 위해 자체 학습으로 사용할 수 있습니다.

라이브러리 기능을 가져오기 위한 Python 가져오기

from __future__ import print_function

from googleapiclient import discovery
from httplib2 import Http
from oauth2client import file, client, tools
  • 첫 번째 import 문을 사용하면 이 코드를 Python 2에서 실행할 수 있습니다. Python 3만 사용하는 경우 이 코드를 완전히 삭제할 수 있습니다.
  • Python 스타일 가이드라인으로는 표준 라이브러리와 서드 파티 모듈 가져오기를 분리하는 것이 있습니다. 이 경우를 위해 빈 줄이 사용됩니다.
  • 다음 세 가지 가져오기는 필요한 클래스와 Google API 클라이언트 라이브러리의 함수입니다. 이 앱을 작성하려면 모두 필요합니다. 간단히 설명하면 다음과 같습니다.
  • googleapiclient는 Google API 연결에 중점을 둡니다.
  • httplib2는 앱에서 사용할 HTTP 클라이언트를 제공합니다.
  • oauth2client은(는) OAuth2 사용자 인증 정보를 관리하는 데 도움이 됩니다.

승인 및 애플리케이션 사용자 인증 정보 가져오기

SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
store = file.Storage('storage.json')
creds = store.get()
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
    creds = tools.run_flow(flow, store)
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))
  • 애플리케이션 SCOPES는 앱이 실행 중인 사용자에게 요청할 권한입니다. 사용자 데이터를 안전하게 보호하기 위해 권한이 부여되지 않으면 앱을 실행할 수 없습니다.
  • 한 가지 권장사항은 앱이 작동하는 데 필요한 가장 제한적인 권한을 사용하는 것입니다. 왜냐하면
  • 앱을 설치하거나 실행할 때 앱에서 많은 권한 집합을 요청하면 성가시지 않나요? 있잖아? 이제 동전의 반대편에 있으며 사용자에게 이러한 모든 권한을 요청하고 있습니다. 더 제한적인 범위를 사용하면 더 적은 액세스 권한을 요청하게 되므로 사용자가 앱을 설치할 때 더 안심할 수 있습니다.
  • 대부분의 모든 범위가 긴 URL처럼 보이며 Drive 메타데이터 범위도 예외는 아닙니다.
SCOPES = 'https://www.googleapis.com/auth/drive.readonly.metadata'
  • 앱이 Google 서버와 통신하려면 토큰이 필요합니다. Google에서 반환되는 유효한 토큰이 토큰 스토리지 파일 storage.json에 저장됩니다. 토큰을 저장하지 않으면 실행할 때마다 앱을 다시 인증해야 합니다.
store = file.Storage('storage.json')
  • 이 앱은 먼저 저장소에 이미 유효한 사용자 인증 정보가 있는지 확인합니다 (if 문 조건부 참고).
creds = store.get()
if not creds or creds.invalid:
  • 사용자 인증 정보가 없거나 만료된 경우 OAuth 클라이언트 ID에서 [oauth2client.client.flow_from_clientsecrets()를 통해] 새로운 승인 흐름을 생성해야 합니다. 보안 비밀]을 제공합니다.client_id.json
if not creds or creds.invalid:
    flow = client.flow_from_clientsecrets('client_id.json', SCOPES)
  • 앱에 흐름이 있으면 흐름이 실행되어야 위에서 설명한 후 그림과 같이 [oauth2client.tools.run_flow()를 통해] 사용자에게 OAuth2 권한 화면이 표시됩니다.
    creds = tools.run_flow(flow, store)
  • 허용을 클릭하면 사용자는 앱이 Google Drive 파일 메타데이터에 액세스하는 데 동의하고 Google 서버에서 토큰을 반환하여 API에 액세스합니다. creds로 반환되고 storage.json 파일에 캐시됩니다.
  • 이제 앱에 API 호출을 위한 유효한 사용자 인증 정보가 있습니다. googleapiclient.discovery.build()를 호출하면 사용 중인 API에 대한 서비스 엔드포인트가 생성됩니다.
  • build()를 사용하려면 API 이름 ('drive')을 전달하고 원하는 버전 (현재 'v3')
  • 마지막 매개변수는 암호화된 API 호출에 사용할 HTTP 클라이언트입니다.
DRIVE = discovery.build('drive', 'v3', http=creds.authorize(Http()))

가져오기 및 처음 100개의 Drive 파일/폴더 표시 및 MIMEtypes)

files = DRIVE.files().list().execute().get('files', [])
for f in files:
    print(f['name'], f['mimeType'])
  • 다음 코드 줄은 Drive API의 files() 컬렉션에 있는 list() 메서드를 호출하여 요청을 빌드합니다. 이 요청은 즉시 execute()로 호출됩니다. 100 파일을 가져오기 위해 'files' 키를 요청하는 Python dict이 반환됩니다. 사용자의 Google Drive에서 가져온 폴더 이름을 삭제합니다 (파일이 더 적은 경우 더 적게 삭제).
  • 왜 100인가요? 이는 DRIVE.files().list()의 기본값입니다. 이 수를 변경하려면(예: 10개의 파일 또는 1,000개의 파일만 변경) 요청에 pageSize 매개변수를 추가합니다(DRIVE.files().list(pageSize=10)). 더 많은 옵션을 알아보려면 문서를 참고하세요.
  • 스크립트의 마지막 부분은 각 파일을 순환하면서 파일의 이름과 파일 MIME 유형을 볼 수 있습니다.

이제 Google REST API를 사용하는 첫 번째 애플리케이션을 작성했습니다. 축하합니다. 가져오기 및 승인 코드를 제외하면 이 스크립트는 실제로 몇 줄의 코드 (위 참조)에 불과합니다. 대부분의 Google API는 유사한 방식으로 작동하며, 개발자는 사용하려는 각 API의 서비스 엔드포인트만 만들면 됩니다.

앱에서 둘 이상의 Google API 사용

예. 같은 앱에서 둘 이상의 API를 사용할 수 있습니다. 다음은 동일한 HTTP 클라이언트를 재사용하고 3개의 Google API에 대한 서비스 엔드포인트를 만드는 앱의 Python 코드 스니펫입니다 (예, 서로 다른 SCOPES도 3개 사용).

SCOPES = (
    'https://www.googleapis.com/auth/drive',
    'https://www.googleapis.com/auth/spreadsheets.readonly',
    'https://www.googleapis.com/auth/presentations',
)

    . . .

HTTP   = creds.authorize(Http())
DRIVE  = discovery.build('drive',  'v3', http=HTTP)
SHEETS = discovery.build('sheets', 'v4', http=HTTP)
SLIDES = discovery.build('slides', 'v1', http=HTTP)

이 코드는 스프레드시트 데이터 (Sheets API)를 기반으로 여러 슬라이드 자료 (Slides API)를 생성하고 생성된 각 자료에 대해 복사되는 슬라이드 템플릿 (Drive API)을 사용하는 앱의 일부일 수 있다고 생각합니다. 이러한 앱은 존재하지 않지만 Google Workspace팀에서 만든 기존 샘플 두 개를 사용하여 유사한 앱을 빌드할 수 있습니다.

  • 텍스트 바꾸기 및 슬라이드의 이미지 ( 블로그 게시물 및 동영상) — Drive API를 사용하여 슬라이드 템플릿 덱을 복사한 다음 Slides API를 사용하여 텍스트를 변경합니다. 이미지 자리표시자
  • 스프레드시트 데이터에서 슬라이드 생성 ( 블로그 게시물 및 동영상) — 스프레드시트에서 데이터를 읽고 (Sheets API) 해당 데이터를 기반으로 슬라이드를 만듭니다 (Slides API).

과제는 바로 앱을 빌드하는 것입니다.

12. *고급 DevTools 사용

이 선택적 섹션에서는 위의 Codelab에서와 같이 마법사를 사용하지 않고 DevTools에서 프로젝트를 만들고, API를 사용 설정하고, 사용자 인증 정보를 가져오는 방법을 설명합니다. 이 과정은 수동으로 작업하는 데 익숙하거나 방법을 배우려는 중급 사용자를 위한 것입니다.

Cloud 콘솔에서 프로젝트 지정

Google API를 사용하여 애플리케이션을 작성할 때마다 프로젝트가 있어야 합니다. 기존 프로젝트를 재사용하거나 새 프로젝트를 만들 수 있습니다. 이 작업은 Cloud 콘솔에서 이루어집니다. 일부 Codelabs는 많은 필수 단계를 건너뛰고 빠르게 진행할 수 있는 매직 링크 (예: 설정 마법사)를 제공합니다. 그러나 일부는 해당되지 않으므로 프로젝트를 만드는 방법에 대한 일반적인 지침을 제공하기 위한 것입니다.

Google 사용자 인증 정보로 로그인하고 콘솔 상단에 프로젝트 풀다운이 표시되면 Cloud 콘솔의 대부분의 화면에서 프로젝트를 만들 수 있습니다. 여기 보이는 대부분의 스크린샷은 API 관리자 (Play Console)에서 가져온 것입니다. 왼쪽 탐색 메뉴에서 'API 관리자'를 클릭하거나 브라우저에서 console.developers.google.com을 직접 가리키면 쉽게 액세스할 수 있습니다.

  1. 아직 프로젝트가 없다면...
  2. 대시보드 페이지: Gwkk2zcSPOHlRzCGsmBDqfdsEMopOgJyJzh6TunpVFOP3R7bN0-iGt81mNueGxoAei6wCqgQBENsamw3v4ozZJtQgKva6v_90dYJ-rvQjUn9U89avlG1tepDYT9HHjZmYixLD0hACQ
  3. 라이브러리 페이지: NqfejNuo6fJfiTXERiCNAFTnno1JGgudf7M2zVyM9DzXP4E6ruoVxHvFQOPW-HFL5SZvm-WohzPTf7njBS9VCwuu4XnwhQ7CB83tNkH0jsYEx31hO6UMBVHPJS1BMjidg5kh-c7MEw
  4. 또는 완전히 빈 페이지: LcJ-wgOFlYa9uZm46fwUkfFTkXIcbhuk607KDaCz8_8NM09RHblz6T5JoWhH7uwSE2q6hKW9XnlutzUqd8yvRAEXFzQjqNNTuscj19yKGkMjbPixeUB8-F1y4Tz7eCpeOEzBUw70yw 3번째 오류가 발생한 경우 브라우저를 새로고침하여 라이브러리 페이지로 이동합니다.
  5. 대시보드 페이지이든 라이브러리 페이지이든 페이지 상단에서 프로젝트 선택기를 클릭합니다. 3f5REVgveKDcJ8wG2C9gduFBftJb6RNtdQQJ79vwFmQCMU8_t_vxja8jPGIK-ZrpjSqGkRkY4k02xth-7FWNPj4GZUdcBmKQe97LporGaLvwIFzzR5wtH5mEEoA1a74_fnrh9YAqqg
  6. 다음으로 선택기 대화상자가 표시됩니다. 오른쪽 상단의 '+' 새 프로젝트(jNzs1bp1eWkpJT3S3AGTm9ejYT2mB3rEd1QajOhO0AR3YxcwaCcF4WlMzdmgOFtlIPQfGEMUysM6m7r89_Fc0Dyy--mjPhCEKdLRZjaozLOvoZOzKtIxdMoWFHCVc2N1K-2HES_k4Q)를 만듭니다.
  7. '+'를 클릭하면 New Project 페이지가 표시됩니다. 모든 일반 계정에는 기본적으로 12개의 프로젝트가 제공됩니다. 첫 번째 프로젝트를 만들기 전에 Google API 서비스 약관에 동의해야 합니다. bCB0sQ6k5nfrajlhc-S61MVzyYYBqu6XVNKeRDzXNvKZUNlSeVJSLbkP8sPNi5A-5hWIFzhsQ5R_ER9BBb2bE_B02c1neY2iO5SSe6XDFldppsXbkWm63-0l3ugtSDQS-TeM1d773w

이렇게 하면 향후 프로젝트를 만들 때 이메일 요청 및 서비스 약관 질문이 삭제됩니다.

Pj31ZKoAAnw_JiSz8io7e4yC2Xh3voETusvePf0DS64IMB4aVy9CtANg2r-2NgPxLjbqcfd-Vs33ZNdN7Diz7sZo3j-MKS83SuNXlhGT8ivdhpIvizP1dsYeK1MBQ4HlDZA5aQkIhg 5. 이전에 프로젝트를 하나 이상 만든 적이 있는 경우 로그인하면 마지막으로 작업한 프로젝트의 대시보드로 이동합니다. 여기에서 프로젝트 선택을 선택할 때처럼 새 프로젝트를 만듭니다. +를 누릅니다. 여섯째, 새 프로젝트가 생성되면 대시보드 페이지(ana4q1H1Q8KNTBEVb62Cc6NVA8VZbxb6BLgf4-bLqLV-p7n8UWv3WW3FN-49CE0x1kARav3pelxOBwNuUDELmitMRFhUNXuaw9-CH9DO3Lek_ifnaI3ZsxSy67Z1UsBO95SPFqlf8Q)로 돌아갑니다.

이제 프로젝트가 성공적으로 생성되었으므로 프로젝트에 사용할 API를 선택하여 다음 단계로 진행할 수 있습니다.

Google API 사용 설정

Google API 사용을 시작하려면 먼저 이를 사용 설정해야 합니다. 아래 예시에서는 Cloud Vision API를 사용 설정하기 위해 필요한 항목을 보여줍니다. 이 Codelab에서는 하나 이상의 API가 사용될 수 있으며, 이를 사용하기 전 비슷한 단계에 따라 사용 설정해야 합니다.

Cloud Shell 사용

Cloud Shell을 사용하는 경우 다음 명령어를 사용하여 API를 사용 설정할 수 있습니다.

gcloud services enable vision.googleapis.com

Cloud Console 사용

또한 API 관리자에서 Vision API를 사용 설정할 수 있습니다. Cloud 콘솔에서 API 관리자로 이동하여 '라이브러리'를 선택합니다.

mg03by3QV6kco0rVVV_8IA6VobAoMG4Yoyl-PofNM0dHK8IcoDmpoLUwWeiKFFjpxHWlS1td5-0n7kNkfqHVhSsTSW_hUMvRu3D72g3LCFb7u4v4bla_Z4XyonTVK8PpigMLJcE01g

검색 창에 'vsion'을 입력하면서 표시된 Vision API를 선택합니다. 입력을 시작하면 다음과 같이 표시됩니다.

B6fWWsVhymufgQx6oGIq4sgukK6JQ1VoguVOrSNf_anQb6Cv6RTLtsjx5Qdeu3-uO8-8PyqwZLYdDDjYW5o56R47cnsd_88RKTMqNkpFeDESW2hmBM_7FK2UAMz1_216yXERYSp_JA

Cloud Vision API를 선택하여 아래 보이는 대화상자가 표시되면 '사용 설정' 버튼을 클릭합니다.

D-MONPLi0UWH6Dp607Dod6JF-LJQZIiUQEPQNKM4Y0mSt09KfipbeeXRAE6cokArBYTfL9VQoONc4L0jlnsUYLsNytQIPfSKr9lCDrXmrrx-1w64LeWWa-byDxcyYWZdCI0mAcVzBw

비용

많은 Google API가 비용 없이 사용될 수 있지만 GCP(제품 및 API) 사용은 무료가 아닙니다. 위에 설명된 것처럼 Vision API를 사용 설정하면 활성 결제 계정을 묻는 메시지가 표시될 수 있습니다. 사용 설정하기 전에 사용자가 Vision API의 가격 책정 정보를 참조해야 합니다. 특정 Google Cloud Platform (GCP) 제품은 '항상 무료' 등급이 있으며, 이 요금은 요금이 청구되기 위해 초과해야 합니다. 이 Codelab에서는 Vision API에 대한 각 호출이 이 무료 등급에 해당하므로, 1개월 내 총 사용량이 한도 내로 유지되는 한 비용이 발생하지 않습니다.

G Suite와 같은 일부 Google API는 Google Workspace의 경우 월간 구독이 사용되므로 Gmail, Google Drive, Calendar, Docs, Sheets, Slides API의 사용 요금이 직접 청구되지 않습니다. 각 Google 제품마다 결제 방식이 다르므로, API 문서에서 해당 정보를 확인해야 합니다.

요약

이 Codelab에서는 Google Drive API를 사용 설정하기만 하면 되므로 위의 안내에 따라 'Drive'를 검색합니다. 사용 설정되면 계속 진행합니다.

API 요청 승인 (사용자 승인)

승인 소개(및 일부 인증)

API에 요청을 수행하기 위해서는 애플리케이션이 적절한 승인을 수행해야 합니다. 비슷한 단어인 인증은 로그인 사용자 인증 정보를 설명합니다. 사용자가 Google 계정에 로그인할 때는 로그인 및 비밀번호를 사용하여 자신을 인증해야 합니다. 인증 후에는 Cloud Storage에 있는 Blob 파일 또는 Google 드라이브에 있는 사용자의 개인 파일과 같은 데이터에 액세스할 수 있도록 사용자 또는 사용자의 코드승인됩니다.

Google API는 여러 유형의 승인을 지원하지만, 이 Codelab의 예시 애플리케이션은 최종 사용자의 데이터에 액세스하므로 Google Workspace API 사용자에게 가장 일반적인 승인은 사용자 승인입니다. 이러한 최종 사용자는 자신의 데이터에 액세스하기 위해 귀하의 앱에 대해 권한을 부여해야 합니다. 즉, 귀하의 코드가 사용자 계정 OAuth2 사용자 인증 정보를 획득해야 합니다.

사용자 승인을 위해 OAuth2 사용자 인증 정보를 가져오기 위해서는 API 관리자로 돌아가고 왼쪽 탐색에서 '사용자 인증 정보' 탭을 선택합니다.

Y33PZ_rJC1y7NH7Rrvq1kN_WxZ9CppDGJK8tTSaha298Jlm5pMqgnyweIO4oX34fcLy0_VI4gihYu5wpEM_LeJg1iDAFoidhUVyfqJX3QTzODQ_OGjHLXYBxPpUvihCJi9JGwvMREw

여기에 도착하면 3개의 개별 섹션에 모든 사용자 인증 정보가 표시됩니다.

ComE4qh76dwZbIehkDUm1QawHGia_qVe7w7rkmgbeo_wjWS--kqXCt4_zvm55iy_RXA8dKYKvBxIKazkcYQ8871SA_kNslbvum_n1Ju4k9qJJSMtDhPAnofcvIlqlKm1nu7PBQhmEg

첫 번째는 API 키에 대한 것이고, 두 번째는 OAuth 2.0 클라이언트 ID, 마지막은 OAuth2 서비스 계정을 위한 것입니다. 여기에서는 가운데 항목을 사용합니다.

사용자 인증 정보 만들기

사용자 인증 정보 페이지에서 위에 있는 + 사용자 인증 정보 만들기 버튼을 클릭하면 'OAuth 클라이언트 ID'를 선택할 수 있는 대화상자가 표시됩니다.

C7jTddfrczo3GewPGCxbxX13GawtFc6FGvAPFusPc_IW-tr5M6xgXd1OzOHOUTo86WDa9fXiCITogv9b3wAgOcYM7xS3AmVNaPdTxbAynIe_sia2_x3LEPsBrdbX8NjeI2WaHRioOA

다음 화면에서는 앱의 승인 '동의 화면'을 구성하고 애플리케이션 유형을 선택하는 두 가지 작업을 수행할 수 있습니다.

El9_aqPQ6Q9hOsOp3JUC5qnCm_A_BVI-oCEfPk_MsvybnWBmC5lT6CtXSoZ7EQoFzrcBEzo4zF9s8CbhXyo0e-eSY3pZ1zg0BRvT0YssMMhbzEG-gP_jiO8v9q9HYTjg-QW5jJ0RDA

동의 화면을 설정하지 않으면 Console에 경고가 표시되고, 지금 작업을 수행해야 합니다. (동의 화면이 이미 설정되었으면 이를 건너뛰고 다음 단계를 진행합니다.)

'동의 화면 구성'을 클릭합니다. 여기에서 '외부' 앱 (Google Workspace 고객인 경우 '내부용')

5w-9R6gPvUHFzODZxXy-0GEhL8ZGDGNea3QtMp1FFYDv5DJ_MIDD21NEh3CzI-GKNzy6bkhH7bohxOG8icQTegiWlavOQhQqhSy7K31Ma3YTI9aAP3P-LmTBanPslX1cnjKLVZBi8A

이 연습에서는 Codelab 샘플을 게시하지 않기 때문에 무엇을 선택하든 중요하지 않습니다. 대부분의 경우 '외부'를 선택하여 더 복잡한 화면으로 연결되지만, 실제로 맨 위에 있는 '애플리케이션 이름' 필드만 작성하면 됩니다.

8e9z_RQz8lumYbDIcBvm57_Gpptn9uhrVQHoRzJ01AJNOFmXloDO7Eg3hhzJZZIU2F5rR0MxTCw-oXVFCq683xUwD4O33pXeuFsOMtM8EZhyjDoYc8Kv4hEoaG0Ztq9ePx6De7YmfA

지금은 애플리케이션 이름만 필요하므로, 수행 중인 Codelab을 나타내는 사람을 선택한 후 저장을 클릭합니다.

OAuth 클라이언트 ID 만들기(사용자 계정 인증)

이제 사용자 인증 정보 탭으로 돌아가서 OAuth2 클라이언트 ID를 만듭니다. 여기에는 만들 수 있는 여러 OAuth 클라이언트 ID가 표시됩니다.

f8reuhsxOUNLcVrEIyRVsmP_fX_ceIlLvEKql1YHwSPW9jk9Mm9fJ0UlfUoi8eRN3QQXar4xtpo071zj6LSczNN7TYY8zB96Dn6ICZuvCAtjIgJSKdMSlX-ZhMuSWFpxxv661aUemw

기타에 해당하는 명령줄 도구를 개발하는 중이므로, 이를 선택하고 만들기 버튼을 클릭합니다. 만들려는 앱을 나타내는 클라이언트 ID를 선택하거나 단순히 일반적으로 'Other client N'인 기본 이름을 선택합니다.

사용자 인증 정보 저장

  1. 새 사용자 인증 정보 대화상자가 나타나면 확인을 클릭하여 닫습니다.

rAwekj_GNEuVwGbZOYYlGDQjlu4flE61OPEZIUmwMI5vGi3W365UwVCxi0mVNhg4WZSSczZywrZZ6NDM_U0FJ4b-TOIMEC189uybOJjgn8F_axesVMopel9RlehRBXdEFhN4d41WGQ

  1. 사용자 인증 정보 페이지로 돌아가서 'OAuth2 클라이언트 ID'가 나올 때까지 아래로 스크롤합니다. 섹션에서 새로 만든 클라이언트 ID의 맨 오른쪽 하단에 있는 다운로드 아이콘 aAmje6kT_xSUM4BKIlPREpjosx7C_xxwpWqBgiGVfVWxQ8nnQOfxTPhuU0QwSnmbjykZffGrqyP1nnKrEQ7D7OqYaGw_Uzscs9gX2RwwP4AmvtHIiTFLa0gkprzJSjG9pQSx7HtmSQ을 찾아 클릭합니다. x-vb-sKZy-X8a1X4uTsBWotSd4wn0PGt4mHMNv6DUrq5J5ihpujUyTiIVr5SHw0p2ZDy0KTP-zqOaFX-Az9BYDWG90KNFmsRLTUOo1mUVk7dYRJiK3VwYJNU0bbxjsbbpqcTr5_oLw
  2. 그러면 client_secret-LONG-HASH-STRING.apps.googleusercontent.com.json과 같은 이름의 파일을 다운로드 폴더에 저장하는 대화상자가 열립니다. client_secret.json(샘플 앱에 사용되는 이름)과 같이 쉬운 이름으로 줄이고, 이 Codelab에서 샘플 앱을 만드는 디렉터리/폴더에 저장하는 것이 좋습니다.