Z tej strony dowiesz się, jak wyświetlić listę subskrypcji Google Workspace za pomocą metody
subscriptions.list().
Gdy wywołasz tę metodę z uwierzytelnianiem użytkownika, zwróci ona listę subskrypcji autoryzowanych przez użytkownika. Gdy używasz uwierzytelniania aplikacji, metoda może zwrócić listę zawierającą dowolną subskrypcję aplikacji.
Wymagania wstępne
Apps Script
- Abonament Google Workspace. Aby ją utworzyć, przeczytaj artykuł Tworzenie subskrypcji.
- Projekt Apps Script:
- Zamiast domyślnego projektu utworzonego automatycznie przez Apps Script użyj projektu w chmurze Google Cloud.
- Wszystkie zakresy dodane do skonfigurowania ekranu zgody OAuth musisz też dodać do zakresów w pliku
appsscript.jsonw projekcie Apps Script. Jeśli na przykład określisz zakreschat.messages, dodaj te informacje: - Włącz
usługę zaawansowaną
Google Workspace Events.
"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages" ]
Wymaga uwierzytelnienia i odpowiedniego zakresu autoryzacji dla każdego typu zdarzenia w subskrypcji:
- W przypadku uwierzytelniania użytkownika wymaga zakresu, który obsługuje co najmniej 1 typ zdarzenia w subskrypcji. Aby zidentyfikować zakres, zobacz Zakresy według typu zdarzenia.
- W przypadku uwierzytelniania aplikacji wymaga zakresu
chat.bot(tylko aplikacje Google Chat).
Python
- Python 3.6 lub nowszy
- Narzędzie do zarządzania pakietami pip
- Najnowsze biblioteki klienta Google dla Pythona. Aby je zainstalować lub zaktualizować, w interfejsie wiersza poleceń uruchom to polecenie:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
- Abonament Google Workspace. Aby ją utworzyć, przeczytaj artykuł Tworzenie subskrypcji.
Wymaga uwierzytelnienia i odpowiedniego zakresu autoryzacji dla każdego typu zdarzenia w subskrypcji:
- W przypadku uwierzytelniania użytkownika wymaga zakresu, który obsługuje co najmniej 1 typ zdarzenia w subskrypcji. Aby zidentyfikować zakres, zobacz Zakresy według typu zdarzenia.
- W przypadku uwierzytelniania aplikacji wymaga zakresu
chat.bot(tylko aplikacje Google Chat).
Wyświetlanie listy subskrypcji autoryzowanych przez użytkownika
Aby wyświetlić listę subskrypcji, musisz filtrować według co najmniej 1 typu zdarzenia. Zapytanie możesz też filtrować według co najmniej 1 zasobu docelowego. Więcej informacji o obsługiwanych
filtrach zapytań znajdziesz w dokumentacji
metody list().
Ten przykładowy kod zwraca tablicę obiektów
Subscriptionfiltrowanych według typu zdarzenia i zasobu docelowego. Gdy uwierzytelnianie odbywa się jako użytkownik, metoda zwraca tylko listę subskrypcji, które użytkownik autoryzował do utworzenia aplikacji.
Aby wyświetlić listę subskrypcji określonego typu zdarzenia i zasobu docelowego:
Apps Script
W projekcie Apps Script utwórz nowy plik skryptu o nazwie
listSubscriptionsi 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. Aby na przykład filtrować subskrypcje, które otrzymują zdarzenia dotyczące nowych członkostw w pokoju Google Chat, użyjgoogle.workspace.chat.message.v1.created.TARGET_RESOURCE: zasób docelowy sformatowany jako pełna nazwa zasobu. Aby na przykład filtrować według subskrypcji pokoju Google Chat, użyj//chat.googleapis.com/spaces/SPACE_IDgdziespaces/SPACE_IDreprezentujenamepole zasobuSpace.
Aby wyświetlić listę subskrypcji, w projekcie Apps Script uruchom funkcję
listSubscriptions.
Python
W katalogu roboczym utwórz plik o nazwie
list_subscriptions.pyi dodaj 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('credentials.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 1 typ zdarzenia z subskrypcji. Jeśli na przykład subskrypcja otrzymuje zdarzenia dotyczące zaktualizowanego pokoju Google Chat, użyjhttps://www.googleapis.com/auth/chat.spaces.readonly.EVENT_TYPE: typ zdarzenia sformatowany zgodnie ze specyfikacją CloudEvents. Aby na przykład filtrować subskrypcje, które otrzymują zdarzenia dotyczące nowych członkostw w pokoju Google Chat, użyjgoogle.workspace.chat.message.v1.created.TARGET_RESOURCE: zasób docelowy sformatowany jako pełna nazwa zasobu. Aby na przykład filtrować według subskrypcji pokoju Google Chat, użyj//chat.googleapis.com/spaces/SPACE_IDgdziespaces/SPACE_IDreprezentujenamepole zasobuSpace.
W katalogu roboczym upewnij się, że masz zapisane dane logowania identyfikatora klienta OAuth i że plik ma nazwę
credentials.json. Przykładowy kod używa tego pliku JSON do uwierzytelniania w Google Workspace i uzyskiwania danych logowania użytkownika. Instrukcje znajdziesz w artykule Tworzenie danych logowania identyfikatora klienta OAuth.Aby wyświetlić listę subskrypcji, w terminalu uruchom to polecenie:
python3 list_subscriptions.py
Interfejs Google Workspace Events API zwraca stronicowaną tablicę Subscription
obiektów
które pasują do filtra w zapytaniu.