Aktualizowanie i odnawianie subskrypcji Google Workspace

Z tej strony dowiesz się, jak odnowić abonament Google Workspace za pomocą metody subscriptions.update(). Użyj tej metody, aby zaktualizować czas wygaśnięcia subskrypcji, w tym odnowić subskrypcję na maksymalny możliwy czas wygaśnięcia, lub zaktualizować listę typów zdarzeń, które mają być odbierane w przypadku zasobu docelowego.

Apps Script

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

Python

  • Python w wersji 3.6 lub nowszej
  • 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
      

Odnowienie abonamentu Google Workspace

W tej sekcji użyj metody subscriptions.update() interfejsu Google Workspace Events API, aby odnowić subskrypcję na maksymalny czas wygaśnięcia. Aby określić maksymalny czas wygaśnięcia, zaktualizuj ttl pole Subscription zasobu do 0.

Maksymalny czas wygaśnięcia zależy od tego, jakie dane zasobu są zawarte w ładunku zdarzenia. Więcej informacji o czasie wygaśnięcia znajdziesz w artykule Dane zdarzeń w przypadku zdarzeń Google Workspace.

Aby odnowić abonament Google Workspace:

Apps Script

  1. W projekcie Apps Script utwórz nowy plik skryptu o nazwie updateSubscription i dodaj ten kod:

    function updateSubscription() {
      // The name of the subscription to update.
      const name = 'subscriptions/SUBSCRIPTION_ID';
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.patch({
        ttl: '0s',
      }, name);
      console.log(response);
    }
    

    Zastąp następujące elementy:

    • SUBSCRIPTION_ID: identyfikator subskrypcji. Aby uzyskać identyfikator, możesz użyć dowolnego z tych elementów:
      • Wartość pola uid.
      • Identyfikator nazwy zasobu reprezentowany w polu name. Jeśli na przykład nazwa zasobu to subscriptions/subscription-123, użyj subscription-123.
  2. Aby zaktualizować abonament Google Workspace, w projekcie Apps Script uruchom funkcję updateSubscription.

Python

  1. W katalogu roboczym utwórz plik o nazwie update_subscription.py i dodaj ten kod:

    """Update subscription."""
    
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = [SCOPES]
    
    # 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,
      )
    
    BODY = {
        'ttl': {'seconds': 0},
    }
    NAME = 'subscriptions/SUBSCRIPTION_ID'
    response = (
        service.subscriptions()
        .patch(name=NAME, updateMask='ttl', body=BODY)
        .execute()
    )
    print(response)
    

    Zastąp następujące elementy:

    • SCOPES: co najmniej 1 zakres OAuth, który obsługuje każdy typ zdarzenia w subskrypcji. Sformatowany jako tablica ciągów znaków. Aby podać kilka zakresów, rozdziel je przecinkami. Na przykład: 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.
    • SUBSCRIPTION_ID: identyfikator subskrypcji. Aby uzyskać identyfikator, możesz użyć dowolnego z tych elementów:
      • Wartość pola uid.
      • Identyfikator nazwy zasobu reprezentowany w polu name. Jeśli na przykład nazwa zasobu to subscriptions/subscription-123, użyj subscription-123.
  2. 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.

  3. Aby zaktualizować abonament Google Workspace, w terminalu uruchom to polecenie:

    python3 update_subscription.py
Interfejs Google Workspace Events API zwraca długo trwającą operację, która zawiera instancję zasobu Subscription.

Aby uzyskać szczegółowe informacje o zaktualizowanym zasobie Subscription, użyj metody operations.get() i określ zasób Operation zwrócony przez żądanie subscriptions.update(). W przeciwnym razie, jeśli określisz zasób Operation z poprzedniej wersji subskrypcji, odpowiedź będzie pusta.

Aktualizowanie lub odnawianie subskrypcji jako aplikacja do obsługi Google Chat

Możesz zaktualizować lub odnowić subskrypcję zdarzeń w Google Chat jako aplikacja do obsługi czatu, a nie jako użytkownik. Proces jest podobny, ale:

  1. Zamiast uwierzytelniania użytkownika, uwierzytelnij się jako aplikacja do obsługi czatu, uzyskując jednorazową zgodę administratora.

  2. Określ zakresy autoryzacji, które umożliwiają aplikacji do obsługi czatu subskrybowanie zdarzeń w Google Chat. Te zakresy autoryzacji zawsze zaczynają się od chat.app i obejmują te zakresy:

    • https://www.googleapis.com/auth/chat.app.memberships: subskrybowanie zdarzeń dotyczących użytkowników w pokoju czatu.
    • https://www.googleapis.com/auth/chat.app.memberships.readonly: subskrybowanie zdarzeń dotyczących użytkowników w pokoju czatu.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: subskrybowanie zdarzeń dotyczących wiadomości w pokoju czatu.
    • https://www.googleapis.com/auth/chat.app.spaces: subskrybowanie zdarzeń dotyczących pokoju czatu.
    • https://www.googleapis.com/auth/chat.app.spaces.readonly: subskrybowanie zdarzeń dotyczących pokoju czatu.

Napisz skrypt, który wywołuje interfejs Google Workspace Events API

Ten przykładowy kod aktualizuje abonament Google Workspace aplikacji do obsługi czatu:

Python

  """Update subscription."""

  from google.oauth2 import service_account
  from apiclient.discovery import build

  # Specify required scopes.
  SCOPES = [SCOPES]

  # Specify service account details.
  CREDENTIALS = (
      service_account.Credentials.from_service_account_file('credentials.json')
      .with_scopes(SCOPES)
  )

  # Call the Workspace Events API using the service endpoint.
  service = build(
      'workspaceevents',
      'v1beta',
      credentials=CREDENTIALS,
  )

  BODY = {
      'ttl': {'seconds': 0},
  }
  NAME = 'subscriptions/SUBSCRIPTION_ID'
  response = (
      service.subscriptions()
      .patch(name=NAME, updateMask='ttl', body=BODY)
      .execute()
  )
  print(response)

Zastąp następujące elementy:

  • SCOPES: określ zakresy autoryzacji, które umożliwiają aplikacji do obsługi czatu subskrybowanie zdarzeń w Google Chat. Te zakresy autoryzacji zawsze zaczynają się od chat.app i obejmują te zakresy:

    • https://www.googleapis.com/auth/chat.app.memberships: subskrybowanie zdarzeń dotyczących użytkowników w pokoju czatu.
    • https://www.googleapis.com/auth/chat.app.memberships.readonly: subskrybowanie zdarzeń dotyczących użytkowników w pokoju czatu.
    • https://www.googleapis.com/auth/chat.app.messages.readonly: subskrybowanie zdarzeń dotyczących wiadomości i reakcji w pokoju czatu.
    • https://www.googleapis.com/auth/chat.app.spaces: subskrybowanie zdarzeń dotyczących pokoju czatu.
    • https://www.googleapis.com/auth/chat.app.spaces.readonly: subskrybowanie zdarzeń dotyczących pokoju czatu.
  • SUBSCRIPTION_ID: identyfikator subskrypcji. Aby uzyskać identyfikator, możesz użyć dowolnego z tych elementów:

    • Wartość pola uid.
    • Identyfikator nazwy zasobu reprezentowany w polu name. Jeśli na przykład nazwa zasobu to subscriptions/subscription-123, użyj subscription-123.