Na tej stronie dowiesz się, jak utworzyć subskrypcję zasobu Google Workspace za pomocą interfejsu Google Workspace Events API. Abonament 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:
- skonfigurować środowisko,
- utworzysz temat Google Cloud Pub/Sub i go zasubskrybujesz, Użyj tego dokumentu jako punktu końcowego do odbierania zdarzeń Google Workspace.
- Wywołaj metodę
createinterfejsu Google Workspace Events API na zasobieSubscription. - Przetestuj abonament Google Workspace, aby sprawdzić, czy temat Pub/Sub otrzymuje zdarzenia, które subskrybujesz.
- Opcjonalnie możesz skonfigurować sposób przesyłania zdarzeń do punktu końcowego aplikacji, aby aplikacja mogła przetwarzać zdarzenie i w razie potrzeby podejmować działania.
Wymagania wstępne
Google Apps Script
- Aby używać poleceń interfejsu wiersza poleceń Google Cloud w tym przewodniku:
- Zainstaluj Google Cloud CLI.
- Aby
zainicjować interfejs wiersza poleceń
gcloud, uruchom ten kod:
gcloud init
- Projekt Apps Script:
- Użyj swojego projektu Google Cloud zamiast domyślnego projektu utworzonego automatycznie przez Apps Script.
- Wszystkie zakresy dodane w celu skonfigurowania ekranu zgody OAuth musisz też dodać do 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" ]
- Projekt Google Cloud z włączonymi płatnościami. W przypadku subskrypcji Google Chat musisz też włączyć interfejs Chat API w projekcie w chmurze i skonfigurować pola Nazwa aplikacji, Adres URL awatara i Opis. Szczegółowe informacje znajdziesz w artykule Tworzenie aplikacji Google Chat.
-
Wymaga uwierzytelnienia i odpowiedniego zakresu autoryzacji dla każdego typu zdarzenia w subskrypcji:
- Zwykle wymaga uwierzytelnienia użytkownika za pomocą ekranu zgody OAuth skonfigurowanego dla aplikacji. Podczas konfigurowania ekranu zgody musisz określić zakres, aby obsługiwać każdy typ zdarzenia w przypadku subskrypcji. Aby skonfigurować ekran zgody i określić wymagane zakresy, przeczytaj artykuł Wybieranie zakresów.
- Aby subskrybować zdarzenie w Google Chat jako aplikacja do obsługi czatu, musisz uwierzytelnić aplikację za pomocą jednorazowego zatwierdzenia przez administratora.
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
- Aby używać poleceń interfejsu wiersza poleceń Google Cloud w tym przewodniku:
- Zainstaluj Google Cloud CLI.
- Aby
zainicjować interfejs wiersza poleceń
gcloud, uruchom ten kod:
gcloud init
- Projekt Google Cloud z włączonymi płatnościami. W przypadku subskrypcji Google Chat musisz też włączyć interfejs Chat API w projekcie w chmurze i skonfigurować pola Nazwa aplikacji, Adres URL awatara i Opis. Szczegółowe informacje znajdziesz w artykule Tworzenie aplikacji Google Chat.
-
Wymaga uwierzytelnienia i odpowiedniego zakresu autoryzacji dla każdego typu zdarzenia w subskrypcji:
- Zwykle wymaga uwierzytelnienia użytkownika za pomocą ekranu zgody OAuth skonfigurowanego dla aplikacji. Podczas konfigurowania ekranu zgody musisz określić zakres, aby obsługiwać każdy typ zdarzenia w przypadku subskrypcji. Aby skonfigurować ekran zgody i określić wymagane zakresy, przeczytaj artykuł Wybieranie zakresów.
- Aby subskrybować zdarzenie w Google Chat jako aplikacja do obsługi czatu, musisz uwierzytelnić aplikację za pomocą jednorazowego zatwierdzenia przez administratora.
Konfigurowanie środowiska
W sekcji poniżej znajdziesz informacje o tym, jak skonfigurować środowisko przed utworzeniem abonamentu Google Workspace.
Włącz interfejs Google Workspace Events API i Google Cloud Pub/Sub API
Zanim zaczniesz korzystać z interfejsów API Google, musisz je włączyć w projekcie Google Cloud. W jednym projekcie Google Cloud możesz włączyć co najmniej 1 interfejs API.Konsola Google Cloud
W konsoli Google Cloud otwórz projekt w chmurze Google Cloud dla swojej aplikacji i włącz interfejsy Google Workspace Events API i Pub/Sub API:
gcloud
W katalogu roboczym zaloguj się na konto Google:
gcloud auth loginUstaw projekt w chmurze dla aplikacji:
gcloud config set project PROJECT_IDZastąp
PROJECT_IDidentyfikatorem projektu projektu w chmurze dla Twojej aplikacji.Włącz interfejs 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 uzyskać szczegółowe instrukcje tworzenia identyfikatora klienta OAuth:
Aplikacja internetowa
- W konsoli interfejsów API Google otwórz Menu > Platforma uwierzytelniania Google > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Aplikacja internetowa.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w Konsoli interfejsów API Google.
- Dodaj autoryzowane identyfikatory URI związane z Twoją aplikacją:
- Aplikacje po stronie klienta (JavaScript) – w sekcji Autoryzowane źródła JavaScriptu kliknij Dodaj URI. Następnie wpisz identyfikator URI, który będzie używany w żądaniach przeglądarki. Określa domeny, z których aplikacja może wysyłać żądania 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, do którego serwer OAuth 2.0 może wysyłać odpowiedzi.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji Identyfikatory klienta OAuth 2.0.
Zapisz identyfikator klienta. W przypadku aplikacji internetowych nie używa się tajnych kluczy klienta.
Android
- W konsoli interfejsów API Google otwórz Menu > Platforma uwierzytelniania Google > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Android.
- W polu „Nazwa” wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w Konsoli interfejsów API Google.
- W polu „Nazwa pakietu” wpisz nazwę pakietu z pliku
AndroidManifest.xml. - W polu „Odcisk cyfrowy certyfikatu SHA-1” wpisz wygenerowany odcisk cyfrowy certyfikatu SHA-1.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klientów OAuth 2.0”.
iOS
- W konsoli interfejsów API Google otwórz Menu > Platforma uwierzytelniania Google > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > iOS.
- W polu „Nazwa” wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w Konsoli interfejsów API Google.
- W polu „Identyfikator pakietu” wpisz identyfikator pakietu podany w pliku
Info.plistaplikacji. - Opcjonalnie: jeśli Twoja aplikacja jest dostępna w Apple App Store, wpisz identyfikator sklepu App Store.
- Opcjonalnie: w polu „Identyfikator zespołu” wpisz niepowtarzalny ciąg 10 znaków wygenerowany przez Apple, który został przypisany Twojemu zespołowi.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klientów OAuth 2.0”.
Aplikacja Chrome
- W konsoli interfejsów API Google otwórz Menu > Platforma uwierzytelniania Google > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Rozszerzenie Chrome.
- W polu „Nazwa” wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w Konsoli interfejsów API Google.
- W polu „Identyfikator produktu” wpisz unikalny 32-znakowy ciąg identyfikatora aplikacji. Wartość tego identyfikatora znajdziesz w adresie URL aplikacji w Chrome Web Store oraz w Panelu dewelopera Chrome Web Store.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klientów OAuth 2.0”.
Aplikacja komputerowa
- W konsoli interfejsów API Google otwórz Menu > Platforma uwierzytelniania Google > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Aplikacja na komputer.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w Konsoli interfejsów API Google.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klientów OAuth 2.0”.
TV i urządzenia z ograniczoną możliwością wpisywania
- W konsoli interfejsów API Google otwórz Menu > Platforma uwierzytelniania Google > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Telewizory i urządzenia z ograniczonymi możliwościami wprowadzania danych.
- W polu „Nazwa” wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w Konsoli interfejsów API Google.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klientów OAuth 2.0”.
Universal Windows Platform (UWP)
- W konsoli interfejsów API Google otwórz Menu > Platforma uwierzytelniania Google > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Uniwersalna platforma Windows (UWP).
- W polu „Nazwa” wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w Konsoli interfejsów API Google.
- W polu „Identyfikator sklepu” wpisz unikalny 12-znakowy identyfikator aplikacji w Microsoft Store. Ten identyfikator znajdziesz w adresie URL aplikacji w Microsoft Store i w Centrum partnerów.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klientów OAuth 2.0”.
Pobieranie pliku JSON z tajnym kluczem klienta
Plik tajnego klucza klienta to reprezentacja JSON danych logowania identyfikatora klienta OAuth, do których aplikacja może się odwoływać podczas podawania danych logowania.
W konsoli interfejsów API Google otwórz Menu > Interfejsy API i usługi > Dane logowania.
W sekcji Identyfikatory klienta OAuth 2.0 kliknij utworzony identyfikator klienta.
Kliknij Pobierz JSON.
Zapisz plik jako
credentials.json.
Tworzenie tematu Pub/Sub i subskrybowanie go
W tej sekcji utworzysz temat Pub/Sub i subskrypcję tego tematu. Temat Pub/Sub służy jako punkt końcowy powiadomień, w którym abonament 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 zasubskrybować go:
Konsola interfejsów API Google
W konsoli interfejsów API Google otwórz stronę Pub/Sub:
Sprawdź, czy wybrany jest projekt w chmurze dla Twojej aplikacji.
Kliknij Utwórz temat i wykonaj te czynności:
- Wpisz nazwę tematu, np.
workspace-events-topic. - Pozostaw zaznaczoną opcję Dodaj subskrypcję domyślną. Pub/Sub nadaje tej domyślnej subskrypcji nazwę podobną do nazwy tematu, np.
workspace-events-topic-sub. - Opcjonalnie: zaktualizuj lub skonfiguruj dodatkowe właściwości tematu.
- Wpisz nazwę tematu, np.
Kliknij Utwórz. Pełna nazwa tematu jest sformatowana jako
projects/PROJECT_ID/topics/TOPIC_ID. Użyj tego imienia i nazwiska w kolejnym kroku.Przyznaj dostęp do publikowania wiadomości Pub/Sub w temacie:
- Na stronie tematu otwórz panel boczny i kliknij kartę Uprawnienia.
- Kliknij Dodaj podmiot zabezpieczeń.
- W polu Dodaj podmioty zabezpieczeń dodaj konto usługi aplikacji Google Workspace, która dostarcza wydarzenia do Twojej subskrypcji:
- W przypadku zdarzeń na czacie:
- Jeśli Twoja aplikacja do obsługi czatu jest dodatkiem do Google Workspace, który rozszerza funkcje Google Chat, użyj adresu e-mail konta usługi na stronie konfiguracji interfejsu Chat API. Więcej informacji znajdziesz w artykule Tworzenie aplikacji Google Chat, która korzysta z Pub/Sub.
- Jeśli Twoja aplikacja w Google Chat korzysta ze zdarzeń interakcji interfejsu Chat API, użyj
chat-api-push@system.gserviceaccount.com.
- Wersja przedpremierowa dla programistów: w przypadku zdarzeń na Dysku,
drive-api-event-push@system.gserviceaccount.com. - W przypadku wydarzeń w Meet:
meet-api-event-push@system.gserviceaccount.com
- W przypadku zdarzeń na czacie:
- W menu Przypisz role kliknij
Pub/Sub Publisher. - Kliknij Zapisz. Aktualizacja uprawnień do tematu może potrwać kilka minut.
gcloud
W projekcie w chmurze utwórz temat, uruchamiając to polecenie:
gcloud pubsub topics create TOPIC_IDZastąp
TOPIC_IDunikalnym identyfikatorem tematu, np.workspace-events-topic.Dane wyjściowe zawierają pełną nazwę tematu sformatowaną jako
projects/PROJECT_ID/topics/TOPIC_ID. Zanotuj nazwę i sprawdź, czy wartość PROJECT_ID to identyfikator projektu w chmurze dla Twojej aplikacji. Użyj nazwy tematu w następnym kroku, a później utwórz abonament Google Workspace.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 następujące elementy:
TOPIC_NAME: pełna nazwa tematu, która jest wynikiem poprzedniego kroku. Sformatowano jakoprojects/PROJECT_ID/topics/TOPIC_ID.GOOGLE_WORKSPACE_APPLICATION: Aplikacja Google Workspace, która musi dostarczać zdarzenia do Twojej subskrypcji:- Aby otrzymywać zdarzenia z Google Chat, użyj jednego z tych kont usługi:
- Jeśli Twoja aplikacja do obsługi czatu jest dodatkiem do Google Workspace, który rozszerza funkcje Google Chat, użyj adresu e-mail konta usługi na stronie konfiguracji interfejsu Chat API. Więcej informacji znajdziesz w artykule Tworzenie aplikacji Google Chat, która korzysta z Pub/Sub.
- Jeśli Twoja aplikacja w Google Chat korzysta ze zdarzeń interakcji interfejsu Chat API, użyj
chat-api-push@system.gserviceaccount.com.
- Wersja przedpremierowa dla programistów: aby otrzymywać zdarzenia z Dysku, użyj
drive-api-event-push@system.gserviceaccount.com. - Aby otrzymywać zdarzenia z Meet, użyj
meet-api-event-push@system.gserviceaccount.com.
- Aby otrzymywać zdarzenia z Google Chat, użyj jednego z tych kont usługi:
Aktualizacja uprawnień do tematu może potrwać kilka minut.
Utwórz subskrypcję Pub/Sub dla tematu:
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAMEZastąp następujące elementy:
SUBSCRIPTION_NAME: Nazwa subskrypcji, np.workspace-events-subscription.TOPIC_NAME: nazwa tematu utworzonego w poprzednim kroku.
Subskrybowanie zasobu Google Workspace
W tej sekcji subskrybujesz zasób Google Workspace, który chcesz monitorować pod kątem zdarzeń.
Wybierz i określ 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 w formacie pełnej nazwy zasobu. Na przykład w przypadku subskrypcji monitorującej pokój czatu (spaces/AAAABBBBBBB) wartość targetResource to //chat.googleapis.com/spaces/AAAABBBBBBB.
Wskazywanie zasobu docelowego w Google Chat
| Zasób docelowy | Format | Ograniczenia |
|---|---|---|
| Miejsce |
gdzie SPACE to identyfikator w
nazwie zasobu zasobu interfejsu Chat API |
Użytkownik Google Chat lub aplikacja Google Chat, która autoryzuje subskrypcję, musi być członkiem pokoju na koncie Google Workspace lub Google. Obsługiwane: |
| Wszystkie przestrzenie użytkownika |
|
Subskrypcja otrzymuje tylko wydarzenia dotyczące pokoi, w których użytkownik jest członkiem za pomocą konta Google Workspace lub konta Google. Obsługuje tylko uwierzytelnianie użytkownika. |
| Użytkownik |
gdzie USER to identyfikator w
nazwie zasobu zasobu interfejsu Chat API |
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żytkownika. |
Określanie zasobu docelowego na Dysku
| Zasób docelowy | Format | Ograniczenia (w odpowiednich przypadkach) |
|---|---|---|
| Plik |
//drive.googleapis.com/files/FILE
gdzie FILE to identyfikator w
nazwie zasobu zasobu |
Użytkownik, który autoryzuje subskrypcję, musi mieć uprawnienia do pliku w subskrypcji w odniesieniu do zdarzenia subskrypcji. |
| Dysk współdzielony |
//drive.googleapis.com/drives/DRIVE
gdzie DRIVE to identyfikator w nazwie zasobu zasobu |
Subskrypcja otrzymuje tylko zdarzenia dotyczące elementów na dysku współdzielonym, na którym użytkownik jest członkiem za pomocą konta Google Workspace lub konta Google. |
Określanie zasobu docelowego dla Meet
| Zasób docelowy | Format | Ograniczenia (w odpowiednich przypadkach) |
|---|---|---|
| Miejsce spotkań | //meet.googleapis.com/spaces/SPACE
gdzie SPACE to identyfikator w
nazwie zasobu zasobu |
|
| Użytkownik | //cloudidentity.googleapis.com/users/USER
gdzie USER to identyfikator w polu
|
Subskrypcja otrzymuje zdarzenia dotyczące wszystkich miejsc spotkań, których użytkownik jest właścicielem. Zwykle właściciel miejsca spotkań jest też organizatorem wydarzenia w Kalendarzu Google powiązanego z tym miejscem. |
Tworzenie abonamentu Google Workspace
Aby utworzyć subskrypcję, użyj metody subscriptions.create interfejsu Google Workspace Events API, aby utworzyć 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 w związku z zasobem. Jeśli na przykład Twoja aplikacja musi tylko wiedzieć o nowych wiadomościach opublikowanych w pokoju w Google Chat, może subskrybować tylko zdarzenia dotyczące utworzonych wiadomości.notificationEndpoint: punkt końcowy powiadomień, do którego abonament Google Workspace dostarcza zdarzenia. Użyj tematu Pub/Sub utworzonego w poprzedniej sekcji.payloadOptions: opcje określania, ile danych zasobu ma być uwzględnionych w ładunku zdarzenia. Ta konfiguracja wpływa na czas wygaśnięcia subskrypcji. Więcej informacji znajdziesz w sekcji Dane zdarzenia.
Aby utworzyć abonament Google Workspace:
Google Apps Script
W projekcie Apps Script utwórz nowy plik skryptu o nazwie
createSubscriptioni 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 następujące 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 identyfikatorzeAAAABBBB, 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 jakoprojects/PROJECT_ID/topics/TOPIC_ID.RESOURCE_DATA: wartość logiczna określająca, czy subskrypcja obejmuje dane zasobów w ładunku:True: obejmuje wszystkie dane zasobów. Aby ograniczyć liczbę uwzględnianych pól, dodaj polefieldMaski określ co najmniej 1 pole dla zmienionego zasobu. Tylko subskrypcje zasobów Google Chat obsługują uwzględnianie danych zasobów.False: nie obejmuje danych o zasobach.
Aby utworzyć abonament Google Workspace, uruchom funkcję
createSubscriptionw projekcie Apps Script.
Python
W katalogu roboczym utwórz plik o nazwie
create_subscription.pyi 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 następujące elementy:
SCOPES: co najmniej 1 zakres OAuth, który obsługuje każdy typ zdarzenia w przypadku subskrypcji. Sformatowane jako tablica ciągów tekstowych. Aby podać kilka zakresów, oddziel 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 identyfikatorzeAAAABBBB, 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 jakoprojects/PROJECT_ID/topics/TOPIC_ID.RESOURCE_DATA: wartość logiczna określająca, czy subskrypcja obejmuje dane zasobów w ładunku:True: obejmuje wszystkie dane zasobów. Aby ograniczyć liczbę uwzględnianych pól, dodaj polefieldMaski określ co najmniej 1 pole dla zmienionego zasobu. Tylko subskrypcje zasobów Google Chat obsługują uwzględnianie danych zasobów.False: nie obejmuje danych o zasobach.
Aby utworzyć abonament Google Workspace, uruchom w terminalu to polecenie:
python3 create_subscription.py
Interfejs Google Workspace Events API zwraca ukończoną operację długotrwałą, 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
Wywoływanie co najmniej 1 typu zdarzeń w zasobie docelowym abonamentu Google Workspace. Jeśli na przykład subskrybujesz nowe wiadomości w pokoju czatu, opublikuj w nim wiadomość.
W konsoli interfejsów API Google otwórz stronę Pub/Sub:
Sprawdź, czy wybrany jest projekt w chmurze dla Twojej aplikacji.
W menu Pub/Sub kliknij Subskrypcje.
W tabeli znajdź subskrypcję Pub/Sub dla swojego tematu i kliknij nazwę subskrypcji.
Kliknij kartę Wiadomości.
Kliknij Pobierz. Wygenerowanie wiadomości Pub/Sub przez zdarzenie może potrwać kilka minut.
gcloud
Wywoływanie co najmniej 1 typu zdarzeń w zasobie docelowym abonamentu Google Workspace. Jeśli na przykład subskrybujesz nowe wiadomości w pokoju czatu, opublikuj w nim wiadomość.
Uruchom to polecenie:
gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ackZastąp następujące elementy:
PUBSUB_SUBSCRIPTION_NAME: pełna nazwa subskrypcji Pub/Sub w formacieprojects/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 dostarczany komunikat zawierający to zdarzenie. Szczegółowe informacje znajdziesz w artykule Otrzymywanie zdarzeń jako wiadomości Google Cloud Pub/Sub.
Konfigurowanie sposobu, w jaki aplikacja otrzymuje zdarzenia
Utworzona subskrypcja Pub/Sub jest oparta na pobieraniu. 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 dostawy push, aby aplikacja mogła otrzymywać 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 Google Chat
Aplikacja do obsługi czatu może subskrybować zdarzenia w Google Chat w pokoju, w którym jest członkiem. Aplikacje Google Chat nie mogą subskrybować zdarzeń użytkownika.
Napisz skrypt, który wywołuje interfejs Google Workspace Events API
Aby utworzyć subskrypcję zdarzeń w pokoju czatu z uwierzytelnianiem aplikacji i zatwierdzeniem przez administratora:
- W razie potrzeby utwórz aplikację Google Chat.
subskrybować zasób z Google Chat, ale:
- Zamiast uwierzytelniania użytkownika uwierzytelnij się jako aplikacja Chat za pomocą jednorazowej zgody administratora.
Określ zakresy autoryzacji, które umożliwiają aplikacji Google Chat subskrybowanie zdarzeń w Google Chat. Zakresy autoryzacji zawsze zaczynają się od
chat.appi obejmują:https://www.googleapis.com/auth/chat.app.memberships: subskrybuj zdarzenia dotyczące użytkowników pokoju czatu.https://www.googleapis.com/auth/chat.app.memberships.readonly: subskrybuj zdarzenia dotyczące użytkowników pokoju czatu.https://www.googleapis.com/auth/chat.app.messages.readonly: subskrybuj zdarzenia związane z wiadomościami i reakcjami w pokoju na czacie.https://www.googleapis.com/auth/chat.app.spaces: subskrybuj zdarzenia w pokoju czatu.https://www.googleapis.com/auth/chat.app.spaces.readonly: subskrybuj zdarzenia w pokoju czatu.
Poniższy przykładowy kod subskrybuje zdarzenia związane z wiadomościami w określonym pokoju czatu:
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',
'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 następujące elementy:
SPACE_ID: nazwa pokoju, którą możesz uzyskać za pomocąspaces.listmetody w interfejsie Chat API lub z adresu URL pokoju.TOPIC_NAME: pełna nazwa tematu Pub/Sub utworzonego w projekcie w chmurze. Sformatowano jakoprojects/PROJECT_ID/topics/TOPIC_ID.RESOURCE_DATA: wartość logiczna określająca, czy subskrypcja obejmuje dane zasobów w ładunku:True: obejmuje wszystkie dane zasobów. Aby ograniczyć liczbę uwzględnianych pól, dodaj polefieldMaski określ co najmniej 1 pole dla zmienionego zasobu. Tylko subskrypcje zasobów Google Chat obsługują uwzględnianie danych zasobów.False: nie obejmuje danych o zasobach.