Python 快速入門導覽課程

快速入門導覽課程說明如何設定及執行會呼叫 Google Workspace API

Google Workspace 快速入門導覽課程會使用 API 用戶端程式庫 驗證和授權流程的詳細資訊建議做法 您為自己的應用程式使用用戶端程式庫本快速入門導覽課程會使用 適合用於測試的簡易驗證方式 環境。如要使用正式環境,建議您先瞭解驗證和授權,再選擇適合應用程式的存取憑證

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

目標

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

必要條件

如要執行本快速入門導覽課程,您必須具備下列先決條件:

設定環境

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

啟用 API

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

    啟用 API

如要使用新的 Google Cloud 專案完成本快速入門導覽課程,請設定 將自己新增為測試使用者。如果您已 為 Cloud 專案完成這個步驟,請直接跳到下一節。

  1. 在 Google Cloud 控制台中,依序前往「選單」 >「API 和服務」 >「OAuth 同意畫面」

    前往 OAuth 同意畫面

  2. 在「使用者類型」部分選取「內部」,然後按一下「建立」
  3. 填寫應用程式註冊表單,然後按一下「Save and Continue」
  4. 您現在可以略過新增範圍的步驟,然後按一下「儲存並繼續」。 日後您可以製作並使用應用程式 Google Workspace 機構,您必須將「使用者類型」變更為「外部」, 新增應用程式所需的授權範圍。

  5. 查看應用程式註冊摘要。如要修改資訊,請按一下「編輯」。如果應用程式註冊看起來沒問題,請按一下「返回資訊主頁」

授權電腦版應用程式憑證

如要驗證使用者,並在應用程式中存取使用者資料,您需要建立一或多個 OAuth 2.0 用戶端 ID。用戶端 ID 可讓 Google 的 OAuth 伺服器識別單一應用程式。如果您的應用程式在多個平台上執行,則必須為每個平台建立專屬的用戶端 ID。
  1. 在 Google Cloud 控制台中,依序前往「Menu」>「APIs & Services」>「Credentials」

    前往「憑證」

  2. 依序點選「建立憑證」>「OAuth 用戶端 ID」
  3. 依序點選「應用程式類型」>「桌面應用程式」
  4. 在「Name」欄位中輸入憑證名稱。這個名稱只會顯示在 Google Cloud 控制台中。
  5. 點選「Create」(建立),系統隨即會顯示已建立 OAuth 用戶端的畫面,並顯示您的新用戶端 ID 和用戶端密鑰。
  6. 按一下「OK」(確定)。新建立的憑證會顯示在「OAuth 2.0 Client IDs」下方。
  7. 將下載的 JSON 檔案儲存為 credentials.json,然後移動 檔案複製到工作目錄

設定 Google Chat 應用程式

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

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

    前往 Chat API 設定頁面

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

    1. 在「App name」(應用程式名稱) 欄位中輸入 Chat API quickstart app
    2. 在「顯示圖片」欄位中輸入 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. 然後點選 [Accept]

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

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

後續步驟