Python 快速入門

建立 Python 指令列應用程式,向 Google Chat API 發出要求。

快速入門指南會說明如何設定及執行呼叫 Google Workspace API 的應用程式。本快速入門導覽課程會使用簡化的驗證方法,適用於測試環境。在正式環境中,建議您先瞭解驗證和授權,再選擇適合應用程式的存取憑證

本快速入門指南會使用 Google Workspace 建議的 API 用戶端程式庫,處理驗證和授權流程的部分詳細資料。

目標

  • 設定環境。
  • 安裝用戶端程式庫。
  • 設定範例。
  • 執行範例。

必要條件

如要執行本快速入門導覽課程,請先完成下列必要條件:

設定環境

如要完成本快速入門導覽課程,請設定環境。

啟用 API

使用 Google API 前,請先在 Google Cloud 專案中啟用這些 API。您可以在單一 Google Cloud 專案中啟用一或多個 API。
  • 在 Google Cloud 控制台中啟用 Google Chat API。

    啟用 API

如果您使用新的 Google Cloud 專案完成這項快速入門導覽課程,請設定 OAuth 同意畫面。如果已為 Cloud 專案完成這個步驟,請跳至下一節。

  1. 在 Google Cloud 控制台中,依序前往「選單」 > >「品牌」

    前往「品牌宣傳」

  2. 如果您已設定 ,可以在「品牌」、「目標對象」和「資料存取權」中設定下列 OAuth 同意畫面設定。如果看到「尚未設定」 訊息,請按一下「開始使用」
    1. 在「App Information」(應用程式資訊) 下方的「App name」(應用程式名稱) 欄位中,輸入應用程式名稱。
    2. 在「使用者支援電子郵件」中,選擇支援電子郵件地址,方便使用者在同意聲明方面有任何疑問時與您聯絡。
    3. 點選 [下一步]
    4. 在「目標對象」下方,選取「內部」
    5. 點選 [下一步]
    6. 在「聯絡資訊」下方,輸入可接收專案異動通知的電子郵件地址
    7. 點選 [下一步]
    8. 在「完成」部分,請詳閱《Google API 服務:使用者資料政策》,然後選取「我同意《Google API 服務:使用者資料政策》」
    9. 按一下 [繼續]。
    10. 按一下「Create」(建立)。
  3. 目前可以略過新增範圍。 日後為 Google Workspace 機構以外的使用者建立應用程式時,請務必將「使用者類型」變更為「外部」。然後新增應用程式需要的授權範圍。詳情請參閱完整的「設定 OAuth 同意畫面」指南。

授權電腦應用程式的憑證

如要驗證使用者身分並存取應用程式中的使用者資料,您需要建立一或多個 OAuth 2.0 用戶端 ID。Google 的 OAuth 伺服器會使用用戶端 ID 來識別個別應用程式。如果您的應用程式在多個平台上執行,則必須為每個平台分別建立用戶端 ID。
  1. 前往 Google Cloud 控制台,依序點選「選單」圖示 > >「用戶端」

    前往「客戶」

  2. 按一下「建立用戶端」
  3. 依序點選「應用程式類型」>「電腦應用程式」
  4. 在「Name」(名稱) 欄位中,輸入憑證名稱。這個名稱只會顯示在 Google Cloud 控制台中。
  5. 按一下 [Create] (建立)

    新建立的憑證會顯示在「OAuth 2.0 用戶端 ID」下方。

  6. 將下載的 JSON 檔案儲存為 credentials.json,然後將該檔案移至工作目錄。

設定 Google Chat 應用程式

如要呼叫 Google Chat API,您必須設定 Google Chat 應用程式。對於任何寫入要求,Google Chat 會使用下列資訊,在 UI 中指派 Google Chat 應用程式。

  1. 在 Google Cloud 控制台中,前往 Chat API 的「Configuration」(設定) 頁面:

    前往 Chat API 設定頁面

  2. 在「Application info」(應用程式資訊) 之下,輸入下列資訊:

    1. 在「App name」(應用程式名稱) 欄位中輸入 Chat API quickstart app
    2. 在「Avatar URL」(虛擬人偶網址) 欄位中,輸入 https://developers.google.com/chat/images/quickstart-app-avatar.png
    3. 在「Description」(說明) 欄位中輸入 Quickstart for calling the Chat API
  3. 在「互動功能」下方,將「啟用互動功能」切換鈕設為關閉,即可停用 Chat 應用程式的互動功能。

  4. 按一下 [儲存]

安裝 Google 用戶端程式庫

  • 安裝 Python 適用的 Google 用戶端程式庫:

    pip install --upgrade google-apps-chat google-auth-httplib2 google-auth-oauthlib 

設定範例

  1. 在工作目錄中,建立名為 quickstart.py 的檔案。
  2. quickstart.py 中加入下列程式碼:

    chat/quickstart/quickstart.py
    from __future__ import print_function  import os.path  from google.auth.transport.requests import Request from google.oauth2.credentials import Credentials from google_auth_oauthlib.flow import InstalledAppFlow from google.apps import chat_v1 as google_chat   # If modifying these scopes, delete the file token.json. SCOPES = ['https://www.googleapis.com/auth/chat.spaces.readonly']   def main():     """Shows basic usage of the Google Chat API.     """     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:         # Create a client         client = google_chat.ChatServiceClient(             credentials = creds,             client_options = {                 "scopes" : SCOPES             }         )          # Initialize request argument(s)         request = google_chat.ListSpacesRequest(             # Filter spaces by space type (SPACE or GROUP_CHAT or DIRECT_MESSAGE)             filter = 'space_type = "SPACE"'         )          # Make the request         page_result = client.list_spaces(request)          # Handle the response. Iterating over page_result will yield results and         # resolve additional pages automatically.         for response in page_result:             print(response)     except Exception as error:         # TODO(developer) - Handle errors from Chat API.         print(f'An error occurred: {error}')   if __name__ == '__main__':     main()

執行範例

  1. 在工作目錄中,建構並執行範例:

    python3 quickstart.py 
  1. 第一次執行範例時,系統會提示您授權存取權:
    1. 如果尚未登入 Google 帳戶,系統會提示你登入。如果您登入了多個帳戶,請選取要用於授權的帳戶。
    2. 按一下 [接受]

    Python 應用程式會執行並呼叫 Google Chat API。

    授權資訊會儲存在檔案系統中,因此下次執行範例程式碼時,系統不會提示您授權。

後續步驟