Na tej stronie dowiesz się, jak wyświetlić listę subskrypcji Google Workspace za pomocą metody subscriptions.list()
.
Gdy wywołasz tę metodę z uwierzytelnianiem użytkownika, zwraca ona listę subskrypcji autoryzowanych przez użytkownika. Gdy używasz uwierzytelniania aplikacji, metoda może zwrócić listę zawierającą wszystkie subskrypcje tej aplikacji.
Wymagania wstępne
Google Apps Script
- subskrypcję Google Workspace. Aby ją utworzyć, zapoznaj się z artykułem Tworzenie subskrypcji.
Wymaga uwierzytelniania użytkownika z co najmniej 1 zakresem obsługującym wszystkie typy zdarzeń w ramach subskrypcji.
- projekt Apps Script:
- Zamiast domyślnego projektu utworzonego automatycznie przez Apps Script użyj swojego projektu Google Cloud.
- W przypadku zakresów, które zostały dodane do skonfigurowania ekranu zgody OAuth, musisz też dodać te zakresy do pliku
appsscript.json
w projekcie Apps Script. Na przykład: - Włącz
usługę zaawansowaną
Google Workspace Events
.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.readonly" ]
Python
- Python 3.6 lub nowszy
- narzędzie do zarządzania pakietami pip;
- Najnowsze biblioteki klienta Google dla języka Python. Aby je zainstalować lub zaktualizować, uruchom to polecenie w interfejsie wiersza poleceń:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Abonament Google Workspace. Aby ją utworzyć, zapoznaj się z artykułem Tworzenie subskrypcji.
Wymaga uwierzytelnienia:
- W przypadku uwierzytelniania użytkownika wymagany jest zakres obsługujący co najmniej 1 typ zdarzenia w subskrypcji. Informacje o zakresie znajdziesz w artykule Zakresy według typu zdarzenia.
- Uwierzytelnianie aplikacji wymaga zakresu
chat.bot
(dotyczy tylko aplikacji Google Chat).
Wyświetlanie listy subskrypcji autoryzowanych przez użytkownika
Aby wyświetlić listę subskrypcji, musisz ustawić filtrowanie według co najmniej 1 typu zdarzenia. Możesz też filtrować zapytanie według co najmniej 1 zasobu docelowego. Więcej informacji o obsługiwanych filtrach zapytań znajdziesz w dokumentacji metody list()
.
Poniższy przykład kodu zwraca tablicę obiektów Subscription
, która jest filtrowana według typu zdarzenia i zasobu docelowego. Gdy uwierzytelnisz się jako użytkownik, metoda zwraca tylko listę subskrypcji, które użytkownik autoryzował do utworzenia przez aplikację.
Aby wyświetlić listę subskrypcji dla określonego typu zdarzenia i zasobu docelowego:
Google Apps Script
W projekcie Apps Script utwórz nowy plik skryptu o nazwie
listSubscriptions
i dodaj ten kod: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); }
Zastąp następujące elementy:
EVENT_TYPE
: typ zdarzenia sformatowany zgodnie ze specyfikacją CloudEvents. Na przykład: aby filtrować subskrypcje, które otrzymują zdarzenia dotyczące nowych członków pokoju Google Chat,google.workspace.chat.message.v1.created
.TARGET_RESOURCE
: zasób docelowy sformatowany jako pełna nazwa zasobu. Aby na przykład filtrować według subskrypcji w pokoju Google Chat, użyj parametru//chat.googleapis.com/spaces/SPACE_ID
, gdziespaces/SPACE_ID
reprezentuje polename
zasobuSpace
.
Aby wyświetlić listę subskrypcji, uruchom funkcję
listSubscriptions
w projekcie Apps Script.
Python
W katalogu roboczym utwórz plik o nazwie
list_subscriptions.py
i dodaj do niego ten kod:"""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)
Zastąp następujące elementy:
SCOPE
: zakres OAuth, który obsługuje co najmniej jeden typ zdarzenia z subskrypcji. Jeśli na przykład w ramach subskrypcji otrzymujesz zdarzenia w zaktualizowanym pokoju czatu,https://www.googleapis.com/auth/chat.spaces.readonly
.EVENT_TYPE
: typ zdarzenia sformatowany zgodnie ze specyfikacją CloudEvents. Na przykład: aby filtrować subskrypcje, które otrzymują zdarzenia dotyczące nowych członków pokoju Google Chat,google.workspace.chat.message.v1.created
.TARGET_RESOURCE
: zasób docelowy sformatowany jako pełna nazwa zasobu. Aby na przykład filtrować według subskrypcji w pokoju Google Chat, użyj parametru//chat.googleapis.com/spaces/SPACE_ID
, gdziespaces/SPACE_ID
reprezentuje polename
zasobuSpace
.
W katalogu roboczym zapisz dane uwierzytelniające identyfikatora klienta OAuth i nazwać plik
client_secrets.json
. Przykładowy kod korzysta z tego pliku JSON do uwierzytelniania w Google Workspace i pobierania danych logowania użytkowników. Instrukcje znajdziesz w artykule Tworzenie danych logowania klienta OAuth.Aby wyświetlić listę subskrypcji, uruchom w terminalu to polecenie:
python3 list_subscriptions.py
Interfejs Events API w Google Workspace zwraca przesłaną tablicę obiektów Subscription
, które pasują do filtra w Twoim zapytaniu.