Wyświetlenie listy subskrypcji Google Workspace

Na tej stronie dowiesz się, jak wyświetlać 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

Google Apps Script

  • Projekt Apps Script:
    • Użyj projektu Google Cloud zamiast domyślnego projektu utworzonego automatycznie przez Apps Script.
    • Wszystkie zakresy dodane w celu skonfigurowania ekranu akceptacji OAuth musisz też dodać do pliku appsscript.json w projekcie Apps Script. Jeśli na przykład określisz zakres chat.messages, dodaj te informacje:
    • "oauthScopes": [
        "https://www.googleapis.com/auth/chat.messages"
      ]
          
    • Włącz usługę zaawansowaną Google Workspace Events.

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
      
  • subskrypcję Google Workspace; Aby ją utworzyć, zapoznaj się z artykułem Tworzenie subskrypcji.

  • Wymaga uwierzytelnienia:

    • W przypadku uwierzytelniania użytkownika wymagany jest zakres, który obsługuje co najmniej 1 typ zdarzenia w przypadku subskrypcji. Aby określić zakres, zobacz Zakresy według typu zdarzenia.
    • W przypadku uwierzytelniania aplikacji wymagany jest zakres chat.bot (tylko w przypadku aplikacji Google Chat).

Wyświetlanie listy subskrypcji autoryzowanych przez użytkownika

Aby wyświetlić listę subskrypcji, musisz filtrować według co najmniej 1 typu zdarzenia. Możesz też filtrować zapytanie według co najmniej jednego 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 filtrowanych według typu zdarzenia i zasobu docelowego. Gdy użytkownik jest uwierzytelniony, ta metoda zwraca tylko listę subskrypcji, na których utworzenie użytkownik zezwolił aplikacji.

Aby wyświetlić listę subskrypcji dla określonego typu zdarzenia i zasobu docelowego:

Google Apps Script

  1. 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 odfiltrować subskrypcje, które otrzymują zdarzenia dotyczące nowych członków pokoju w Google Chat, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: zasób docelowy w formacie pełnej nazwy zasobu. Aby na przykład filtrować subskrypcje w przestrzeni Google Chat, użyj //chat.googleapis.com/spaces/SPACE_ID, gdzie spaces/SPACE_ID reprezentuje pole name zasobu Space.
  2. Aby wyświetlić listę subskrypcji, uruchom funkcję listSubscriptions w projekcie Apps Script.

Python

  1. W katalogu roboczym utwórz plik o nazwie list_subscriptions.py i 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 z zaktualizowanego pokoju w Chat, https://www.googleapis.com/auth/chat.spaces.readonly.
    • EVENT_TYPE: typ zdarzenia sformatowany zgodnie ze specyfikacją CloudEvents. Na przykład, aby odfiltrować subskrypcje, które otrzymują zdarzenia dotyczące nowych członków pokoju w Google Chat, google.workspace.chat.message.v1.created.
    • TARGET_RESOURCE: zasób docelowy w formacie pełnej nazwy zasobu. Aby na przykład filtrować subskrypcje w przestrzeni Google Chat, użyj //chat.googleapis.com/spaces/SPACE_ID, gdzie spaces/SPACE_ID reprezentuje pole name zasobu Space.
  2. W katalogu roboczym sprawdź, czy masz zapisane dane uwierzytelniające identyfikatora klienta OAuth i czy 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 uwierzytelniających identyfikatora klienta OAuth.

  3. Aby wyświetlić listę subskrypcji, uruchom w terminalu to polecenie:

    python3 list_subscriptions.py

Interfejs Google Workspace Events API zwraca stronicowaną tablicę Subscriptionobiektów, które pasują do filtra w zapytaniu.