Tworzenie subskrypcji Google Workspace

Na tej stronie dowiesz się, jak za pomocą interfejsu Google Workspace Events API utworzyć subskrypcję zasobu Google Workspace. Subskrypcja Google Workspace umożliwia aplikacji otrzymywanie informacji o zdarzeniach Google Workspace, które reprezentują zmiany w zasobie Google Workspace. Informacje o zasobach i typach zdarzeń obsługiwanych przez interfejs Google Workspace Events API znajdziesz w omówieniu interfejsu Google Workspace Events API.

Na tej stronie znajdziesz te instrukcje tworzenia subskrypcji Google Workspace:

  1. skonfigurować środowisko,
  2. utworzyć temat Google Cloud Pub/Sub i go zasubskrybować, Użyj tego dokumentu jako punktu końcowego do odbierania zdarzeń Google Workspace.
  3. Wywołaj metodę create interfejsu Google Workspace Events API w zasobie Subscription.
  4. Przetestuj subskrypcję Google Workspace, aby sprawdzić, czy temat Pub/Sub otrzymuje zdarzenia, które subskrybujesz.
  5. Opcjonalnie możesz skonfigurować sposób przekazywania zdarzeń do punktu końcowego aplikacji, aby aplikacja mogła przetworzyć zdarzenie i w razie potrzeby podjąć działanie.

Wymagania wstępne

Google Apps Script

  • Aby używać poleceń Google Cloud CLI opisanych w tym przewodniku:
    1. Zainstaluj Google Cloud CLI.
    2. Aby zainicjować interfejs wiersza poleceń gcloud, uruchom ten kod:
    3.   gcloud init
        
  • Projekt Apps Script:
    • Użyj swojego projektu Google Cloud zamiast domyślnego, który jest tworzony automatycznie przez Apps Script.
    • Wszystkie zakresy dodane podczas konfigurowania ekranu zgody OAuth musisz też dodać do pliku appsscript.json w projekcie Apps Script. Jeśli na przykład podano zakres chat.messages, dodaj:
    • "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ć, uruchom w interfejsie wiersza poleceń to polecenie:
      pip3 install --upgrade google-api-python-client google-auth-oauthlib
      
  • Aby używać poleceń Google Cloud CLI opisanych w tym przewodniku:
    1. Zainstaluj Google Cloud CLI.
    2. Aby zainicjować interfejs wiersza poleceń gcloud, uruchom ten kod:
    3.   gcloud init
        

Konfigurowanie środowiska

W tej sekcji wyjaśniamy, jak skonfigurować środowisko przed utworzeniem subskrypcji Google Workspace.

Włączanie interfejsów Google Workspace Events API i Google Cloud Pub/Sub API

Zanim zaczniesz korzystać z interfejsów API Google, musisz je włączyć w projekcie w chmurze Google. W jednym projekcie Google Cloud możesz włączyć 1 lub więcej interfejsów API.

Konsola Google Cloud

W konsoli Google Cloud otwórz projekt Google Cloud aplikacji i włącz interfejsy Google Workspace Events API i Pub/Sub API:

Włączanie interfejsów API

gcloud

  1. W katalogu roboczym zaloguj się na konto Google:

    gcloud auth login
  2. Ustaw projekt w chmurze dla aplikacji:

    gcloud config set project PROJECT_ID

    Zastąp PROJECT_ID identyfikatorem projektu w projekcie w chmurze dla swojej aplikacji.

  3. Włącz interfejsy Google Workspace Events API i Google Cloud Pub/Sub API:

    gcloud services enable pubsub.googleapis.com workspaceevents.googleapis.com

Tworzenie danych logowania identyfikatora klienta OAuth

Wybierz typ aplikacji, aby wyświetlić instrukcje tworzenia identyfikatora klienta OAuth:

Aplikacja internetowa

  1. W konsoli Google Cloud otwórz Menu  > Platforma uwierzytelniania Google > Klienty.

    Otwórz stronę Klienty

  2. Kliknij Utwórz klienta.
  3. Kliknij Typ aplikacji > Aplikacja internetowa.
  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
  5. Dodaj autoryzowane identyfikatory URI powiązane z Twoją aplikacją:
    • Aplikacje po stronie klienta (JavaScript) – w sekcji Autoryzowane źródła JavaScript kliknij Dodaj URI. Następnie wpisz identyfikator URI, który ma być używany w przypadku żądań przeglądarki. Identyfikuje domeny, z których aplikacja może wysyłać żądania do interfejsu API do serwera OAuth 2.0.
    • Aplikacje po stronie serwera (Java, Python i inne) – w sekcji Autoryzowane identyfikatory URI przekierowania kliknij Dodaj URI. Następnie wpisz identyfikator URI punktu końcowego, na który serwer OAuth 2.0 może wysyłać odpowiedzi.
  6. Opcjonalnie: jeśli Twoja aplikacja jest agentem AI, który wykonuje działania w imieniu użytkowników, wybierz Używaj tego klienta w przypadku agenta opartego na AI. Jeśli Twoja aplikacja obsługuje zarówno przepływy pracy agenta AI, jak i standardowe funkcje użytkownika, utwórz osobnych klientów OAuth dla każdego z tych przepływów i każdej z tych funkcji. Po utworzeniu klienta nie możesz zmienić tego ustawienia.
  7. Kliknij Utwórz.

    Nowo utworzone dane logowania pojawią się w sekcji Identyfikatory klienta OAuth 2.0.

    Pamiętaj, że klucze klienta nie są używane w aplikacjach internetowych.

Android

  1. W konsoli Google Cloud otwórz Menu  > Platforma Google Auth > Klienci.

    Otwórz stronę Klienty

  2. Kliknij Utwórz klienta.
  3. Kliknij Typ aplikacji > Android.
  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
  5. W polu Nazwa pakietu wpisz nazwę pakietu z pliku AndroidManifest.xml.
  6. W polu Odcisk cyfrowy certyfikatu SHA-1 wpisz wygenerowany odcisk cyfrowy certyfikatu SHA-1.
  7. Opcjonalnie: jeśli Twoja aplikacja jest agentem AI, który wykonuje działania w imieniu użytkowników, wybierz Używaj tego klienta w przypadku agenta opartego na AI. Jeśli Twoja aplikacja obsługuje zarówno przepływy pracy agenta AI, jak i standardowe funkcje użytkownika, utwórz osobnych klientów OAuth dla każdego z tych przepływów i każdej z tych funkcji. Po utworzeniu klienta nie możesz zmienić tego ustawienia.
  8. Kliknij Utwórz.

    Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klienta OAuth 2.0”.

iOS

  1. W konsoli Google Cloud otwórz Menu  > Platforma uwierzytelniania Google > Klienty.

    Otwórz stronę Klienty

  2. Kliknij Utwórz klienta.
  3. Kliknij Typ aplikacji > iOS.
  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
  5. W polu Identyfikator pakietu wpisz identyfikator pakietu podany w pliku Info.plist aplikacji.
  6. Opcjonalnie: jeśli Twoja aplikacja jest dostępna w sklepie z aplikacjami Apple, wpisz identyfikator sklepu z aplikacjami.
  7. Opcjonalnie: w polu Identyfikator zespołu wpisz unikalny 10-znakowy ciąg znaków wygenerowany przez Apple i przypisany do Twojego zespołu.
  8. Opcjonalnie: jeśli Twoja aplikacja jest agentem AI, który wykonuje działania w imieniu użytkowników, wybierz Używaj tego klienta w przypadku agenta opartego na AI. Jeśli Twoja aplikacja obsługuje zarówno przepływy pracy agenta AI, jak i standardowe funkcje użytkownika, utwórz osobnych klientów OAuth dla każdego z tych przepływów i każdej z tych funkcji. Po utworzeniu klienta nie możesz zmienić tego ustawienia.
  9. Kliknij Utwórz.

    Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klienta OAuth 2.0”.

Aplikacja Chrome

  1. W konsoli Google Cloud otwórz Menu  > Platforma uwierzytelniania Google > Klienty.

    Otwórz stronę Klienty

  2. Kliknij Utwórz klienta.
  3. Kliknij Typ aplikacji > Rozszerzenie do Chrome.
  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
  5. W polu Identyfikator produktu wpisz unikalny 32-znakowy ciąg identyfikatora aplikacji. Identyfikator znajdziesz w adresie URL aplikacji w Chrome Web Store oraz w Panelu dewelopera Chrome Web Store.
  6. Opcjonalnie: jeśli Twoja aplikacja jest agentem AI, który wykonuje działania w imieniu użytkowników, wybierz Używaj tego klienta w przypadku agenta opartego na AI. Jeśli Twoja aplikacja obsługuje zarówno przepływy pracy agenta AI, jak i standardowe funkcje użytkownika, utwórz osobnych klientów OAuth dla każdego z tych przepływów i każdej z tych funkcji. Po utworzeniu klienta nie możesz zmienić tego ustawienia.
  7. Kliknij Utwórz.

    Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klienta OAuth 2.0”.

Aplikacja komputerowa

  1. W konsoli Google Cloud otwórz Menu  > Platforma uwierzytelniania Google > Klienty.

    Otwórz stronę Klienty

  2. Kliknij Utwórz klienta.
  3. Kliknij Typ aplikacji > Aplikacja komputerowa.
  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
  5. Opcjonalnie: jeśli Twoja aplikacja jest agentem AI, który wykonuje działania w imieniu użytkowników, wybierz Używaj tego klienta w przypadku agenta opartego na AI. Jeśli Twoja aplikacja obsługuje zarówno przepływy pracy agenta AI, jak i standardowe funkcje użytkownika, utwórz osobnych klientów OAuth dla każdego z tych przepływów i każdej z tych funkcji. Po utworzeniu klienta nie możesz zmienić tego ustawienia.
  6. Kliknij Utwórz.

    Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klienta OAuth 2.0”.

Telewizory i urządzenia wejściowe z ograniczoną możliwością wpisywania

  1. W konsoli Google Cloud otwórz Menu  > Platforma Google Auth > Klienci.

    Otwórz stronę Klienty

  2. Kliknij Utwórz klienta.
  3. Kliknij Typ aplikacji > Telewizory i urządzenia wejściowe z ograniczonymi możliwościami.
  4. W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
  5. Opcjonalnie: jeśli Twoja aplikacja jest agentem AI, który wykonuje działania w imieniu użytkowników, wybierz Używaj tego klienta w przypadku agenta opartego na AI. Jeśli Twoja aplikacja obsługuje zarówno przepływy pracy agenta AI, jak i standardowe funkcje użytkownika, utwórz osobnych klientów OAuth dla każdego z tych przepływów i każdej z tych funkcji. Po utworzeniu klienta nie możesz zmienić tego ustawienia.
  6. Kliknij Utwórz.

    Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klienta OAuth 2.0”.

Universal Windows Platform (UWP)

  1. W konsoli interfejsów API Google otwórz Menu  > > Klienci.

    Otwórz stronę Klienty

  2. Kliknij Utwórz klienta.
  3. Kliknij Typ aplikacji > Uniwersalna platforma systemu Windows (UWP).
  4. W polu „Nazwa” wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w Konsoli interfejsów API Google.
  5. W polu „Identyfikator sklepu” wpisz unikalny, 12-znakowy identyfikator aplikacji w Microsoft Store. Ten identyfikator znajdziesz w adresie URL aplikacji w Microsoft Store oraz w Centrum partnerskim.
  6. Opcjonalnie: jeśli Twoja aplikacja jest agentem AI, który wykonuje działania w imieniu użytkowników, wybierz Używaj tego klienta w przypadku agenta opartego na AI. Jeśli Twoja aplikacja obsługuje zarówno przepływy pracy agenta AI, jak i standardowe funkcje użytkownika, utwórz osobnych klientów OAuth dla każdego z tych przepływów i każdej z tych funkcji. Po utworzeniu klienta nie możesz zmienić tego ustawienia.
  7. Kliknij Utwórz.

    Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klienta OAuth 2.0”.

Pobieranie pliku JSON z tajnym kluczem klienta

Plik tajnego klucza klienta to reprezentacja JSON danych logowania identyfikatora klienta OAuth, do której aplikacja może się odwoływać podczas podawania danych logowania.

  1. W konsoli interfejsów API Google otwórz Menu  > Interfejsy API i usługi > Dane logowania.

    Przejdź do danych logowania

  2. W sekcji Identyfikatory klienta OAuth 2.0 kliknij utworzony identyfikator klienta.

  3. Kliknij Pobierz JSON.

  4. Zapisz plik jako credentials.json.

Tworzenie i subskrybowanie tematu Pub/Sub

W tej sekcji utworzysz temat Pub/Sub i subskrypcję tematu. Temat Pub/Sub służy jako punkt końcowy powiadomień, w którym subskrypcja Google Workspace otrzymuje zdarzenia.

Więcej informacji o tworzeniu tematów Pub/Sub i zarządzaniu nimi znajdziesz w dokumentacji Pub/Sub.

Aby utworzyć temat Pub/Sub i go zasubskrybować:

Konsola interfejsów API Google

  1. W konsoli interfejsów API Google otwórz stronę Pub/Sub:

    Otwórz Google Cloud Pub/Sub

    Sprawdź, czy wybrany jest projekt w chmurze dla Twojej aplikacji.

  2. Kliknij Utwórz temat i wykonaj te czynności:

    1. Wpisz nazwę tematu, na przykład workspace-events-topic.
    2. Pozostaw zaznaczoną opcję Dodaj subskrypcję domyślną. Pub/Sub nadaje tej domyślnej subskrypcji nazwę podobną do nazwy tematu, np. workspace-events-topic-sub.
    3. Opcjonalnie: zaktualizuj lub skonfiguruj dodatkowe właściwości tematu.
  3. Kliknij Utwórz. Pełna nazwa tematu ma format projects/PROJECT_ID/topics/TOPIC_ID. Użyj tego imienia i nazwiska w późniejszym kroku.

  4. Przyznaj uprawnienia do publikowania wiadomości Pub/Sub w Twoim temacie:

    1. Na stronie tematu przejdź do panelu bocznego i otwórz kartę Uprawnienia.
    2. Kliknij Dodaj podmiot zabezpieczeń.
    3. W polu Dodaj podmioty zabezpieczeń dodaj konto usługi dla aplikacji Google Workspace, która dostarcza zdarzenia do Twojej subskrypcji:
      1. W przypadku zdarzeń w Google Chat: chat-api-push@system.gserviceaccount.com.
      2. W przypadku zdarzeń na Dysku: drive-api-event-push@system.gserviceaccount.com
      3. W przypadku wydarzeń w Meet: meet-api-event-push@system.gserviceaccount.com.
    4. W menu Przypisz role wybierz Pub/Sub Publisher.
    5. Kliknij Zapisz. Aktualizacja uprawnień tematu może potrwać kilka minut.

gcloud

  1. W projekcie w chmurze utwórz temat, uruchamiając to polecenie:

    gcloud pubsub topics create TOPIC_ID

    Zastąp TOPIC_ID unikalnym identyfikatorem tematu, np. workspace-events-topic.

    W danych wyjściowych zobaczysz pełną nazwę tematu w formacie projects/PROJECT_ID/topics/TOPIC_ID. Zanotuj nazwę i upewnij się, że wartość PROJECT_ID to identyfikator projektu w chmurze Twojej aplikacji. Użyj nazwy tematu w następnym kroku i do utworzenia subskrypcji Google Workspace później.

  2. Przyznaj uprawnienia do publikowania wiadomości w temacie:

    gcloud pubsub topics add-iam-policy-binding TOPIC_NAME --member='serviceAccount:GOOGLE_WORKSPACE_APPLICATION' --role='roles/pubsub.publisher'

    Zastąp te elementy:

    • TOPIC_NAME: pełna nazwa tematu, która jest wynikiem poprzedniego kroku. Sformatowano jako projects/PROJECT_ID/topics/TOPIC_ID.
    • GOOGLE_WORKSPACE_APPLICATION: aplikacja Google Workspace, która musi dostarczać zdarzenia do Twojej subskrypcji:

    Aktualizacja uprawnień tematu może potrwać kilka minut.

  3. Utwórz subskrypcję Pub/Sub dla tematu:

     gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME

    Zastąp te elementy:

    • SUBSCRIPTION_NAME: nazwa subskrypcji, np. workspace-events-subscription.
    • TOPIC_NAME: nazwa tematu utworzonego w poprzednim kroku.

Subskrybowanie zasobu Google Workspace

W tej sekcji zasubskrybujesz zasób Google Workspace, który chcesz monitorować pod kątem zdarzeń.

Wybierz i zidentyfikuj zasób docelowy

W subskrypcji Google Workspace zasób docelowy to zasób Google Workspace, który monitorujesz pod kątem zdarzeń. Zasób docelowy jest reprezentowany w polu targetResource subskrypcji i sformatowany przy użyciu pełnej nazwy zasobu. Na przykład w przypadku subskrypcji, która monitoruje pokój czatu (spaces/AAAABBBBBBB), wartość targetResource to //chat.googleapis.com/spaces/AAAABBBBBBB.

Identyfikowanie zasobu docelowego w Google Chat

Zasób docelowy Format Ograniczenia
Spacja

//chat.googleapis.com/spaces/SPACE

gdzie SPACE to identyfikator w nazwie zasobu zasobu space interfejsu Chat API. Identyfikator możesz uzyskać z adresu URL pokoju lub za pomocą metody spaces.list().

Użytkownik Google Chat lub aplikacja do Google Chat, która autoryzuje subskrypcję, musi być członkiem pokoju za pomocą konta Google Workspace lub konta Google. Obsługuje:
Wszystkie pokoje użytkownika

//chat.googleapis.com/spaces/-

Subskrypcja otrzymuje tylko zdarzenia dotyczące pokoi, w których użytkownik jest członkiem za pomocą swojego konta Google Workspace lub konta Google. Obsługuje tylko uwierzytelnianie użytkowników.
Użytkownik

//cloudidentity.googleapis.com/users/USER

gdzie USER to identyfikator w nazwie zasobu zasobu user interfejsu Chat API. Szczegółowe informacje znajdziesz w artykule Identyfikowanie i określanie użytkowników Google Chat.

Subskrypcja otrzymuje tylko zdarzenia dotyczące użytkownika, który ją autoryzował. Użytkownik nie może autoryzować subskrypcji w imieniu innych użytkowników. Obsługuje tylko uwierzytelnianie użytkowników.

Klient ( wersja przedpremierowa dla programistów)

//admin.googleapis.com/customers/CUSTOMER

gdzie CUSTOMER to identyfikator klienta. Możesz też użyć aliasu my_customer dla własnej domeny aplikacji Google Chat.

Subskrypcja otrzymuje zdarzenia dotyczące wszystkich pokoi i użytkowników zarządzanych przez domenę klienta. Obsługuje tylko uwierzytelnianie aplikacji za zgodą administratora.

Identyfikowanie zasobu docelowego na Dysku

Zasób docelowy Format Ograniczenia (jeśli dotyczy)
Plik //drive.googleapis.com/files/FILE

gdzie FILE to identyfikator w nazwie zasobu zasobu files interfejsu Drive API. Identyfikator możesz uzyskać z adresu URL pliku lub za pomocą metody files.list.

Użytkownik, który autoryzuje subskrypcję, musi mieć uprawnienia do pliku w ramach subskrypcji powiązanej ze zdarzeniem subskrypcji.
Dysk współdzielony //drive.googleapis.com/drives/DRIVE

gdzie DRIVE to identyfikator w nazwie zasobu zasobu drives interfejsu Drive API. Identyfikator możesz uzyskać z adresu URL dysku lub za pomocą metody drives.list.

Subskrypcja otrzymuje tylko zdarzenia dotyczące elementów na dysku współdzielonym, na którym użytkownik jest członkiem za pomocą swojego konta Google Workspace lub konta Google.

Określanie zasobu docelowego dla Meet

Zasób docelowy Format Ograniczenia (jeśli dotyczy)
Miejsce spotkań //meet.googleapis.com/spaces/SPACE

gdzie SPACE to identyfikator w nazwie zasobu zasobu spaces interfejsu Meet REST API. Szczegółowe informacje znajdziesz w artykule Jak Meet identyfikuje pokój spotkań.

Użytkownik //cloudidentity.googleapis.com/users/USER

gdzie USER to identyfikator w polu signedinUser.user zasobu participants interfejsu Meet REST API. Więcej informacji znajdziesz w artykule Praca z uczestnikami.

Subskrypcja otrzymuje zdarzenia dotyczące wszystkich pokoi, których właścicielem jest użytkownik. Zwykle właściciel pokoju jest też organizatorem wydarzenia w Kalendarzu Google powiązanego z tym pokojem.

Tworzenie subskrypcji Google Workspace

Aby utworzyć subskrypcję, użyj metody subscriptions.create interfejsu Google Workspace Events API, która tworzy zasób Subscription. Wypełnij te pola:

  • targetResource: Google Workspace zidentyfikowany w poprzedniej sekcji, sformatowany przy użyciu pełnej nazwy zasobu.
  • eventTypes: tablica zawierająca co najmniej 1 typ zdarzenia, o którym chcesz otrzymywać informacje dotyczące zasobu. Jeśli na przykład aplikacja musi wiedzieć tylko o nowych wiadomościach opublikowanych w pokoju Google Chat, może subskrybować tylko zdarzenia dotyczące utworzonych wiadomości.
  • notificationEndpoint: punkt końcowy powiadomień, do którego subskrypcja Google Workspace dostarcza zdarzenia. Użyj tematu Pub/Sub utworzonego w poprzedniej sekcji.
  • payloadOptions: opcje określające, ile danych zasobu ma być uwzględnionych w ładunku zdarzenia. Ta konfiguracja wpływa na czas ważności subskrypcji. Więcej informacji znajdziesz w artykule Dane zdarzeń.

Aby utworzyć subskrypcję Google Workspace:

Google Apps Script

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

    function createSubscription() {
      // The Google Workspace resource to monitor for events.
      const targetResource = 'TARGET_RESOURCE';
    
      // The types of events to receive.
      const eventTypes = [EVENT_TYPES];
    
      // The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
      const pubsubTopic = 'TOPIC_NAME';
    
      // Whether to include resource data or not.
      const resourceData = RESOURCE_DATA;
    
      // Call the Workspace Events API using the advanced service.
      const response = WorkspaceEvents.Subscriptions.create({
        targetResource: targetResource,
        eventTypes: eventTypes,
        notificationEndpoint: {
          pubsubTopic: pubsubTopic,
        },
        payloadOptions: {
          includeResource: resourceData
        }
      });
      console.log(response);
    }
    

    Zastąp te elementy:

    • TARGET_RESOURCE: zasób Google Workspace, który subskrybujesz, sformatowany jako pełna nazwa zasobu. Aby na przykład zasubskrybować pokój czatu o identyfikatorze AAAABBBB, użyj //chat.googleapis.com/spaces/AAAABBBB.
    • EVENT_TYPES: co najmniej 1 typ zdarzenia, który chcesz subskrybować w zasobie docelowym. Sformatuj jako tablicę ciągów znaków, np. 'google.workspace.chat.message.v1.created'.
    • TOPIC_NAME: pełna nazwa tematu Pub/Sub utworzonego w projekcie w chmurze. Sformatowano jako projects/PROJECT_ID/topics/TOPIC_ID.
    • RESOURCE_DATA: wartość logiczna określająca, czy subskrypcja zawiera dane zasobu w ładunku:

      • True: obejmuje wszystkie dane zasobów. Aby ograniczyć pola, które mają być uwzględniane, dodaj pole fieldMask i określ co najmniej 1 pole zmienionego zasobu. Tylko subskrypcje zasobów Google Chat obsługują uwzględnianie danych zasobów.
      • False: nie obejmuje danych o zasobach.
  2. Aby utworzyć subskrypcję Google Workspace, uruchom funkcję createSubscription w projekcie Apps Script.

Python

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

    """Create 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()
    
    # The Google Workspace resource to monitor for events.
    TARGET_RESOURCE = 'TARGET_RESOURCE'
    
    # The types of events to receive.
    EVENT_TYPES = [EVENT_TYPES]
    
    # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
    TOPIC = 'TOPIC_NAME'
    
    # Call the Workspace Events API using the service endpoint.
    service = build(
        'workspaceevents',
        'v1',
        credentials=CREDENTIALS,
    )
    
    BODY = {
        'target_resource': TARGET_RESOURCE,
        'event_types': EVENT_TYPES,
        'notification_endpoint': {'pubsub_topic': TOPIC},
        'payload_options': {'include_resource': RESOURCE_DATA},
    }
    response = service.subscriptions().create(body=BODY).execute()
    print(response)
    

    Zastąp te elementy:

    • SCOPES: co najmniej 1 zakres OAuth, który obsługuje każdy typ zdarzenia w ramach subskrypcji. Sformatowane jako tablica ciągów znaków. Aby wyświetlić listę wielu zakresów, rozdziel je przecinkami. Na przykład: 'https://www.googleapis.com/auth/chat.spaces.readonly', 'https://www.googleapis.com/auth/chat.memberships.readonly'.
    • TARGET_RESOURCE: zasób Google Workspace, który subskrybujesz, sformatowany jako pełna nazwa zasobu. Aby na przykład zasubskrybować pokój czatu o identyfikatorze AAAABBBB, użyj //chat.googleapis.com/spaces/AAAABBBB.
    • EVENT_TYPES: co najmniej 1 typ zdarzenia, który chcesz subskrybować w zasobie docelowym. Sformatuj jako tablicę ciągów znaków, np. 'google.workspace.chat.message.v1.created'.
    • TOPIC_NAME: pełna nazwa tematu Pub/Sub utworzonego w projekcie w chmurze. Sformatowano jako projects/PROJECT_ID/topics/TOPIC_ID.
    • RESOURCE_DATA: wartość logiczna określająca, czy subskrypcja zawiera dane zasobu w ładunku:

      • True: obejmuje wszystkie dane zasobów. Aby ograniczyć pola, które mają być uwzględniane, dodaj pole fieldMask i określ co najmniej 1 pole zmienionego zasobu. Tylko subskrypcje zasobów Google Chat obsługują uwzględnianie danych zasobów.
      • False: nie obejmuje danych o zasobach.
  2. Aby utworzyć subskrypcję Google Workspace, uruchom w terminalu to polecenie:

    python3 create_subscription.py

Interfejs Google Workspace Events API zwraca ukończoną długotrwałą operację, która zawiera instancję utworzonego zasobu Subscription.

Testowanie abonamentu Google Workspace

Aby sprawdzić, czy otrzymujesz zdarzenia Google Workspace, możesz wywołać zdarzenie i pobrać wiadomości do subskrypcji Pub/Sub.

Aby przetestować abonament Google Workspace:

Konsola interfejsów API Google

  1. wywoływać co najmniej 1 typ zdarzenia w zasobie docelowym subskrypcji Google Workspace; Jeśli na przykład subskrybujesz nowe wiadomości w pokoju czatu, opublikuj w nim wiadomość.

  2. W konsoli interfejsów API Google otwórz stronę Pub/Sub:

    Otwórz stronę Pub/Sub

    Sprawdź, czy wybrany jest projekt w chmurze dla Twojej aplikacji.

  3. W menu Pub/Sub kliknij Subskrypcje.

  4. W tabeli znajdź subskrypcję Pub/Sub dla swojego tematu i kliknij jej nazwę.

  5. Kliknij kartę Wiadomości.

  6. Kliknij Pull (Pobierz). Wygenerowanie wiadomości Pub/Sub przez zdarzenie może potrwać kilka minut.

gcloud

  1. wywoływać co najmniej 1 typ zdarzenia w zasobie docelowym subskrypcji Google Workspace; Jeśli na przykład subskrybujesz nowe wiadomości w pokoju czatu, opublikuj w nim wiadomość.

  2. Uruchom to polecenie:

    gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ack

    Zastąp te elementy:

    • PUBSUB_SUBSCRIPTION_NAME: pełna nazwa subskrypcji Pub/Sub w formacie projects/PROJECT_ID/subscriptions/SUBSCRIPTION_ID.
    • MESSAGE_COUNT: maksymalna liczba wiadomości Pub/Sub, które chcesz pobrać.

    Wygenerowanie wiadomości Pub/Sub przez zdarzenie może potrwać kilka minut.

W przypadku każdego wywołanego zdarzenia Google Workspace do subskrypcji Pub/Sub jest dostarczana wiadomość zawierająca to zdarzenie. Szczegółowe informacje znajdziesz w artykule Odbieranie zdarzeń jako wiadomości Google Cloud Pub/Sub.

Konfigurowanie sposobu odbierania zdarzeń przez aplikację

Utworzona przez Ciebie subskrypcja Pub/Sub jest oparta na modelu pull. Po przetestowaniu subskrypcji Pub/Sub możesz zaktualizować typ dostawy, aby zmienić sposób, w jaki aplikacja otrzymuje zdarzenia. Możesz na przykład skonfigurować subskrypcję Pub/Sub na typ dostarczania push, aby aplikacja mogła odbierać zdarzenia bezpośrednio do punktu końcowego aplikacji.

Więcej informacji o konfigurowaniu subskrypcji Pub/Sub znajdziesz w dokumentacji Pub/Sub.

Subskrybowanie zdarzeń w pokoju czatu jako aplikacja do Google Chat

Możesz subskrybować zdarzenia Google Chat jako aplikacja do Google Chat z pokoju, w którym aplikacja do Google Chat jest członkiem. Aplikacje do Google Chat nie mogą subskrybować zdarzeń użytkownika.

Pisanie skryptu wywołującego interfejs Google Workspace Events API

Aby utworzyć subskrypcję zdarzeń w pokoju czatu z uwierzytelnianiem aplikacji i zatwierdzeniem przez administratora:

  1. W razie potrzeby utwórz aplikację do Google Chat.
  2. Subskrybować zasób Google Chat, ale:

    1. Zamiast uwierzytelniania użytkownika uwierzytelniaj jako aplikacja Google Chat z jednorazowym zatwierdzeniem przez administratora.
    2. Określ zakresy autoryzacji, które umożliwiają aplikacji Google Chat subskrybowanie zdarzeń Google Chat. Te zakresy autoryzacji zawsze zaczynają się od chat.app i obejmują:

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

Poniższy przykładowy kod subskrybuje zdarzenia wiadomości w określonym pokoju Google Chat:

Python

  """Create subscription."""

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

  # Specify required scopes.
  SCOPES = ['https://www.googleapis.com/auth/chat.app.messages.readonly']

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

  # The Google Workspace resource to monitor for events.
  TARGET_RESOURCE = '//chat.googleapis.com/spaces/SPACE_ID'

  # The types of events to receive.
  EVENT_TYPES = [
                  'google.workspace.chat.message.v1.created',
                  'google.workspace.chat.message.v1.updated',
                  'google.workspace.chat.message.v1.deleted',
                ]

  # The endpoint to deliver events to, such as a Google Cloud Pub/Sub topic.
  TOPIC = 'TOPIC_NAME'

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

  BODY = {
      'target_resource': TARGET_RESOURCE,
      'event_types': EVENT_TYPES,
      'notification_endpoint': {'pubsub_topic': TOPIC},
      'payload_options': {'include_resource': RESOURCE_DATA},
  }
  response = service.subscriptions().create(body=BODY).execute()
  print(response)

Zastąp te elementy:

  • SPACE_ID: nazwa pokoju, którą możesz uzyskać za pomocą metody spaces.list w interfejsie Chat API lub z adresu URL pokoju.
  • TOPIC_NAME: pełna nazwa tematu Pub/Sub utworzonego w projekcie w chmurze. Sformatowano jako projects/PROJECT_ID/topics/TOPIC_ID.
  • RESOURCE_DATA: wartość logiczna określająca, czy subskrypcja zawiera dane zasobu w ładunku:

    • True: obejmuje wszystkie dane zasobów. Aby ograniczyć pola, które mają być uwzględniane, dodaj pole fieldMask i określ co najmniej 1 pole zmienionego zasobu. Tylko subskrypcje zasobów Google Chat obsługują uwzględnianie danych zasobów.
    • False: nie obejmuje danych o zasobach.

Subskrybowanie wszystkich zdarzeń w Google Chat w organizacji Google Workspace jako aplikacja Google Chat

Subskrypcja klienta umożliwia aplikacji do Google Chat monitorowanie zdarzeń w pokojach i zdarzeń użytkowników w całej organizacji Google Workspace.

Szczegółowe informacje o tym, jak zdarzenia są dostarczane w przypadku subskrypcji klientów, w tym o dostarczaniu zdarzeń w pokojach zarządzanych przez organizacje zewnętrzne, znajdziesz w artykule Ograniczenia subskrypcji klientów i zachowania związane z dostarczaniem.

Wymagania i ograniczenia

  • Uwierzytelnianie: uwierzytelnianie jako aplikacja do obsługi czatu z jednorazowym zatwierdzeniem przez administratora
  • SKU organizacja Google Workspace musi mieć co najmniej 1 licencję SKU Enterprise. Pamiętaj, że to wymaganie nie jest ściśle egzekwowane na etapie programu wersji przedpremierowej dla programistów, ale będzie egzekwowane w przyszłości (ogłosimy to osobno).
  • Unikalność: aplikacja do Google Chat może utworzyć tylko 1 subskrypcję klienta dla danej organizacji Google Workspace. Organizacja Google Workspace może mieć łącznie maksymalnie 5 subskrypcji klientów (utworzonych przez różne aplikacje do Google Chat).
  • Zakresy: wymaga co najmniej 1 z tych zakresów w zależności od typów zdarzeń, które chcesz otrzymywać:
    • https://www.googleapis.com/auth/chat.app.all.spaces.readonly: aby otrzymywać zdarzenia dotyczące pokoi.
    • https://www.googleapis.com/auth/chat.app.all.memberships.readonly: aby otrzymywać zdarzenia dotyczące subskrypcji.
    • https://www.googleapis.com/auth/chat.app.all.messages.readonly: aby otrzymywać zdarzenia dotyczące wiadomości i reakcji.
    • https://www.googleapis.com/auth/chat.app.all.users.readstate.readonly ( wersja przedpremierowa dla programistów): aby otrzymywać zdarzenia dotyczące stanu odczytu użytkowników.

Tworzenie subskrypcji klienta

Aby utworzyć subskrypcję klienta, wywołaj metodę subscriptions.create.

Ten przykładowy kod w Pythonie tworzy subskrypcję klienta:

Python

"""Create a customer subscription."""

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

# Specify required scopes.
# Replace with the scopes needed for the event types you want to receive.
SCOPES = ['https://www.googleapis.com/auth/chat.app.all.messages.readonly']

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

# Monitor all events for the Google Workspace organization.
TARGET_RESOURCE = '//admin.googleapis.com/customers/CUSTOMER_ID'

# The types of events to receive.
EVENT_TYPES = [
    'google.workspace.chat.message.v1.created',
    'google.workspace.chat.message.v1.updated',
    'google.workspace.chat.message.v1.deleted',
]

# The endpoint to deliver events to.
TOPIC = 'TOPIC_NAME'

# Call the Workspace Events API.
# Note: Use the v1beta endpoint for Developer Preview features.
service = build(
    'workspaceevents',
    'v1beta',
    credentials=CREDENTIALS,
)

BODY = {
    'target_resource': TARGET_RESOURCE,
    'event_types': EVENT_TYPES,
    'notification_endpoint': {'pubsub_topic': TOPIC},
    'payload_options': {'include_resource': RESOURCE_DATA},
}

response = service.subscriptions().create(body=BODY).execute()
print(response)

Zastąp te elementy:

  • CUSTOMER_ID: identyfikator klienta. Możesz też użyć aliasu my_customer dla organizacji Google Workspace aplikacji Google Chat.
  • TOPIC_NAME: pełna nazwa tematu Pub/Sub utworzonego w projekcie w chmurze. Sformatowano jako projects/PROJECT_ID/topics/TOPIC_ID.
  • RESOURCE_DATA: wartość logiczna, która określa, czy subskrypcja zawiera dane zasobu w ładunku:
    • True: obejmuje wszystkie dane zasobów. Aby ograniczyć pola, które mają być uwzględnione, dodaj pole fieldMask i określ co najmniej 1 pole dla zmienionego zasobu. Tylko subskrypcje zasobów Google Chat obsługują dołączanie danych zasobów.
    • False: nie obejmuje danych o zasobach.