本頁說明如何使用 subscriptions.list()
方法列出 Google Workspace 訂閱項目。
當您使用使用者驗證功能呼叫這個方法時,這個方法會傳回使用者授權的訂閱項目清單。使用應用程式驗證時,這個方法可以傳回包含應用程式任何訂閱項目的清單。
必要條件
Apps Script
- 訂閱 Google Workspace。如要建立訂閱項目,請參閱「建立訂閱項目」。
需要使用者驗證,且具備一或多個可支援訂閱項目所有事件類型的範圍。
- Apps Script 專案:
- 請使用 Google Cloud 專案,而非由 Apps Script 自動建立的預設專案。
- 對於您新增用於設定 OAuth 同意畫面的任何範圍,您也必須將範圍新增至 Apps Script 專案中的
appsscript.json
檔案。例如: - 啟用
Google Workspace Events
進階服務。
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
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
在 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); }
更改下列內容:
如要列出訂閱項目,請在 Apps Script 專案中執行
listSubscriptions
函式。
Python
在工作目錄中建立名為
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
欄位。
請確認您已在工作目錄中儲存 OAuth 用戶端 ID 憑證,並將檔案命名為
client_secrets.json
。程式碼範例會使用這個 JSON 檔案,透過 Google Workspace 進行驗證並取得使用者憑證。如需操作說明,請參閱「建立 OAuth 用戶端 ID 憑證」。如要列出訂閱項目,請在終端機中執行下列指令:
python3 list_subscriptions.py
Google Workspace Events API 會傳回符合查詢篩選條件的 Subscription
物件分頁陣列。