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
Google Workspace Eventsusługę zaawansowaną.
"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. Subskrybowanie zdarzenia w Google Chat jako aplikacja do obsługi czatu jest dostępne w wersji przedpremierowej dla programistów.
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. Subskrybowanie zdarzenia w Google Chat jako aplikacja do obsługi czatu jest dostępne w wersji przedpremierowej dla programistów.
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 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 na 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 Google Cloud otwórz Menu > Google Auth platform > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Aplikacja internetowa.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w konsoli Google Cloud.
- 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 Google Cloud otwórz Menu > Google Auth platform > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Android.
- W polu „Nazwa” wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w konsoli Google Cloud.
- 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 Google Cloud otwórz Menu > Google Auth platform > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > iOS.
- W polu „Nazwa” wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w konsoli Google Cloud.
- 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 Google Cloud otwórz Menu > Google Auth platform > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Rozszerzenie Chrome.
- W polu „Nazwa” wpisz nazwę danych logowania. Ta nazwa jest widoczna tylko w konsoli Google Cloud.
- 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 Google Cloud otwórz Menu > Google Auth platform > 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 Google Cloud.
- 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 Google Cloud otwórz Menu > Google Auth platform > 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 Google Cloud.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klientów OAuth 2.0”.
Universal Windows Platform (UWP)
- W konsoli Google Cloud otwórz Menu > Google Auth platform > 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 Google Cloud.
- 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 Google Cloud kliknij 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 Google Cloud
W konsoli Google Cloud 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 do obsługi czatu Google Chat, która korzysta z Pub/Sub.
- Jeśli Twoja aplikacja do obsługi czatu 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 do obsługi czatu Google, która korzysta z Pub/Sub.
- Jeśli Twoja aplikacja do obsługi czatu 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 |
|---|---|---|
| Spacja |
gdzie SPACE to identyfikator w
nazwie zasobu interfejsu Chat API |
Użytkownik Google Chat lub aplikacja do obsługi czatu, 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 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, w formacie pełnej nazwy 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, w formacie pełnej nazwy 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 Google Cloud
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 Google Cloud 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 Google Chat jako aplikacja do obsługi czatu Google Chat
Aplikacja do obsługi czatu może subskrybować zdarzenia w Google Chat w pokoju, w którym jest członkiem. Aplikacje do obsługi czatu nie mogą subskrybować zdarzeń użytkownika.
Tworzenie klucza interfejsu API
Aby wywołać metodę interfejsu API wersji przedpremierowej dla programistów, musisz użyć niepublicznej wersji przedpremierowej dla programistów dokumentu opisującego interfejs API. Aby uwierzytelnić żądanie, musisz przekazać klucz interfejsu API.
Aby utworzyć klucz interfejsu API, otwórz projekt Google Cloud swojej aplikacji i wykonaj te czynności:
- W konsoli Google Cloud otwórz Menu > Interfejsy API i usługi > Dane logowania.
- Kliknij Utwórz dane logowania > Klucz interfejsu API.
- Wyświetli się nowy klucz interfejsu API.
- Kliknij Kopiuj , aby skopiować klucz interfejsu API do użycia w kodzie aplikacji. Klucz interfejsu API można też znaleźć w sekcji „Klucze interfejsu API” w danych logowania projektu.
- Aby można było zapobiec nieautoryzowanemu użyciu, zalecamy ograniczenie miejsc i interfejsów API, w których można używać klucza API. Więcej informacji znajdziesz w sekcji Dodawanie ograniczeń interfejsu API.
Napisz skrypt, który wywołuje interfejs Google Workspace Events API
Aby utworzyć subskrypcję zdarzeń w pokoju czatu Google Chat z uwierzytelnianiem aplikacji i zatwierdzeniem przez administratora:
- W razie potrzeby utwórz aplikację do obsługi czatu.
subskrybować zasób z Google Chat, ale:
- Zamiast uwierzytelniania użytkownika uwierzytelnij się jako aplikacja do obsługi czatu za pomocą jednorazowej zgody administratora.
Określ zakresy autoryzacji, które umożliwiają aplikacji do obsługi czatu 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.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.
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,
discoveryServiceUrl='https://workspaceevents.googleapis.com/$discovery/rest?version=v1beta&labels=DEVELOPER_PREVIEW&key=API_KEY',
)
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.API_KEY: klucz API utworzony do utworzenia punktu końcowego usługi dla interfejsu Google Workspace Events API.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.