快速入門說明如何設定及執行呼叫 Google Workspace API 的應用程式。
Google Workspace 快速入門會使用 API 用戶端程式庫處理驗證和授權流程的部分細節。建議您為自家應用程式使用用戶端程式庫。本快速入門導覽課程會使用簡化的驗證方法,適合測試環境使用。如要使用正式環境,建議您先瞭解驗證和授權,再選擇適合應用程式的存取憑證。
建立 Python 指令列應用程式,向 Drive 標籤 API 提出要求。
目標
- 設定環境。
- 安裝用戶端程式庫。
- 設定範例。
- 執行範例。
必要條件
- Python 2.6 以上版本
- pip 套件管理工具
- Google Cloud 專案。
- Google 帳戶。
設定環境
如要完成本快速入門課程,請設定環境。
啟用 API
使用 Google API 前,您必須先在 Google Cloud 專案中啟用這些 API。您可以在單一 Google Cloud 專案中啟用一或多個 API。在 Google Cloud 控制台中啟用 Drive Labels API。
授權電腦版應用程式的憑證
如要驗證使用者,並在應用程式中存取使用者資料,您需要建立一或多個 OAuth 2.0 用戶端 ID。用戶端 ID 可讓 Google 的 OAuth 伺服器識別單一應用程式。如果您的應用程式在多個平台上執行,則必須為每個平台建立專屬的用戶端 ID。- 在 Google Cloud 控制台中,依序前往「Menu」>「APIs & Services」>「Credentials」。
- 依序按一下「建立憑證」>「OAuth 用戶端 ID」。
- 依序點選「應用程式類型」>「桌面應用程式」。
- 在「Name」欄位中輸入憑證名稱。這個名稱只會顯示在 Google Cloud 控制台中。
- 按一下「建立」,系統會顯示「OAuth client created」(已建立 OAuth 用戶端) 畫面,其中顯示新的用戶端 ID 和用戶端密碼。
- 按一下「確定」。新建立的憑證會顯示在「OAuth 2.0 Client IDs」下方。
- 將下載的 JSON 檔案儲存為
credentials.json
,然後將檔案移至工作目錄。
安裝 Google 用戶端程式庫
安裝 Python 適用的 Google 用戶端程式庫:
pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib
如需其他安裝選項,請參閱 Python 程式庫的「安裝」一節。
設定範例
- 在工作目錄中建立名為
quickstart.py
的檔案。 在
quickstart.py
中加入以下程式碼:import os.path from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build from googleapiclient.errors import HttpError # If modifying these scopes, delete the file token.json. SCOPES = ['https://www.googleapis.com/auth/drive.labels.readonly'] def main(): """Shows basic usage of the Drive Labels API. Prints the first page of the customer's Labels. """ creds = None # The file token.json stores the user's access and refresh tokens, and is # created automatically when the authorization flow completes for the first # time. if os.path.exists('token.json'): creds = Credentials.from_authorized_user_file('token.json', SCOPES) # If there are no (valid) credentials available, let the user log in. if not creds or not creds.valid: if creds and creds.expired and creds.refresh_token: creds.refresh(Request()) else: flow = InstalledAppFlow.from_client_secrets_file('credentials.json', SCOPES) creds = flow.run_local_server(port=0) # Save the credentials for the next run with open('token.json', 'w') as token: token.write(creds.to_json()) try: service = build('drivelabels', 'v2', credentials=creds) response = service.labels().list( view='LABEL_VIEW_FULL').execute() labels = response['labels'] if not labels: print('No Labels') else: for label in labels: name = label['name'] title = label['properties']['title'] print(u'{0}:\t{1}'.format(name, title)) except HttpError as error: # TODO (developer) - Handle errors from Labels API. print(f'An error occurred: {error}') if __name__ == '__main__': main()
執行範例
在工作目錄中建構並執行範例:
python quickstart.py
第一次執行範例時,系統會提示您授權存取權:
- 如果您尚未登入 Google 帳戶,系統會提示您登入。如果您登入了多個帳戶,請選取要用於授權的帳戶。
- 然後點選 [Accept]。
授權資訊會儲存在檔案系統中,因此下次執行範例程式碼時,系統不會提示您授權。
您已成功建立第一個向 Drive Labels API 提出要求的 Python 應用程式。