列出 Google Workspace 訂閱方案

本頁說明如何使用 subscriptions.list() 方法列出 Google Workspace 訂閱項目。

當您使用使用者驗證功能呼叫這個方法時,這個方法會傳回使用者授權的訂閱項目清單。使用應用程式驗證時,這個方法可以傳回包含應用程式任何訂閱項目的清單。

必要條件

Apps Script

  • Apps Script 專案:
    • 請使用 Google Cloud 專案,而非 Apps Script 自動建立的預設專案。
    • 對於您新增用於設定 OAuth 同意畫面的任何範圍,您也必須將範圍新增至 Apps Script 專案中的 appsscript.json 檔案。例如:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages.readonly"
      ]
          
    • 啟用 Google Workspace Events 進階服務。

Python

  • Python 3.6 以上版本
  • pip 套件管理工具
  • 最新的 Python 適用 Google 用戶端程式庫。如要安裝或更新這些項目,請在指令列介面中執行下列指令:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • 具備 Google Workspace 訂閱方案。如要建立訂閱項目,請參閱「建立訂閱項目」一文。

  • 需要驗證

    • 針對使用者驗證,需要至少支援訂閱項目的一項事件類型的權限範圍。如要瞭解如何識別範圍,請參閱「依事件類型劃分範圍」。
    • 如要驗證應用程式,需要具備 chat.bot 範圍 (僅限 Google Chat 應用程式)。

列出使用者授權的訂閱項目

如要列出訂閱項目,您必須至少依據一種事件類型進行篩選。您也可以依據一或多個目標資源篩選查詢。如要瞭解支援的查詢篩選器,請參閱 list() 方法說明文件

以下程式碼範例會傳回陣列的 Subscription 物件,並根據事件類型和目標資源進行篩選。對使用者進行驗證時,這個方法只會傳回使用者授權應用程式建立的訂閱項目清單。

如要列出指定事件類型和目標資源的訂閱項目,請按照下列步驟操作:

Apps Script

  1. 在 Apps 指令碼專案中,建立名為 listSubscriptions 的新指令碼檔案,然後加入下列程式碼:

    function listSubscriptions() {
      // Filter for event type (required).
      const eventType = 'EVENT_TYPE';
    
      // Filter for target resource (optional).
      const targetResource = 'TARGET_RESOURCE';
    
      const filter = `event_types:"${eventType}" AND target_resource="${targetResource}"`
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.list({ filter });
      console.log(response);
    }
    

    更改下列內容:

    • EVENT_TYPE:根據 CloudEvents 規格格式化的事件類型。例如,如要篩選出接收 Google Chat 聊天室新成員資格事件的訂閱項目,請google.workspace.chat.message.v1.created
    • TARGET_RESOURCE目標資源,格式為完整資源名稱。舉例來說,如要依 Google Chat 聊天室的訂閱項目篩選,請使用 //chat.googleapis.com/spaces/SPACE_ID,其中 spaces/SPACE_ID 代表 Space 資源的 name 欄位。
  2. 如要列出訂閱項目,請在 Apps Script 專案中執行 listSubscriptions 函式。

Python

  1. 在工作目錄中建立名為 list_subscriptions.py 的檔案,並新增下列程式碼:

    """List subscriptions."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['SCOPE']
    
    # Authenticate with Google Workspace and get user authentication.
    flow = InstalledAppFlow.from_client_secrets_file('client_secrets.json', SCOPES)
    CREDENTIALS = flow.run_local_server()
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    # Filter for event type (required).
    EVENT_TYPE = 'EVENT_TYPE'
    
    # Filter for target resource (optional).
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    FILTER = f'event_types:"{EVENT_TYPE}" AND target_resource="{TARGET_RESOURCE}"'
    response = service.subscriptions().list(filter=FILTER).execute()
    print(response)
    

    更改下列內容:

    • SCOPE支援訂閱項目中至少一種事件類型的 OAuth 範圍。舉例來說,如果訂閱項目收到事件 (更新的 Chat 聊天室),https://www.googleapis.com/auth/chat.spaces.readonly
    • EVENT_TYPE:根據 CloudEvents 規格格式化的事件類型。例如,如要篩選出接收 Google Chat 聊天室新成員資格事件的訂閱項目,請google.workspace.chat.message.v1.created
    • TARGET_RESOURCE目標資源,格式為完整資源名稱。舉例來說,如要依 Google Chat 聊天室的訂閱項目篩選,請使用 //chat.googleapis.com/spaces/SPACE_ID,其中 spaces/SPACE_ID 代表 Space 資源的 name 欄位。
  2. 確定您已將 OAuth 用戶端 ID 憑證儲存在工作目錄中,並將檔案命名為 client_secrets.json。程式碼範例會使用這個 JSON 檔案,透過 Google Workspace 進行驗證並取得使用者憑證。如需操作說明,請參閱「建立 OAuth 用戶端 ID 憑證」。

  3. 如要列出訂閱項目,請在終端機中執行下列指令:

    python3 list_subscriptions.py

Google Workspace Events API 會傳回符合查詢篩選條件的 Subscription 物件分頁陣列