Na tej stronie dowiesz się, jak utworzyć subskrypcję zasobu Google Workspace za pomocą interfejsu Google Workspace Events API. Subskrypcja Google Workspace umożliwia aplikacji otrzymywanie informacji o wydarzeniach w Google Workspace, które odzwierciedlają zmiany w zasobie Google Workspace. Aby dowiedzieć się, jakie zasoby i typy zdarzeń obsługuje interfejs Google Workspace Events API, zapoznaj się z omówieniem 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żywasz tego tematu jako punktu końcowego do odbierania zdarzeń Google Workspace.
- Wywołaj metodę
create
interfejsu Google Workspace Events API na zasobieSubscription
. - Przetestuj subskrypcję 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 projektu Google Cloud zamiast domyślnego projektu utworzonego automatycznie przez Apps Script.
- Wszystkie zakresy dodane w celu skonfigurowania ekranu akceptacji OAuth musisz też dodać do pliku
appsscript.json
w projekcie Apps Script. Jeśli na przykład określisz 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 Cloud 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.
- Subskrybowanie zdarzenia w Google Chat jako aplikacja Google Chat wymaga uwierzytelnienia aplikacji z jednorazowym zatwierdzeniem przez administratora. Subskrybowanie zdarzenia w Google Chat jako aplikacja Google Chat 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 Cloud 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.
- Subskrybowanie zdarzenia w Google Chat jako aplikacja Google Chat wymaga uwierzytelnienia aplikacji z jednorazowym zatwierdzeniem przez administratora. Subskrybowanie zdarzenia w Google Chat jako aplikacja Google Chat 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 Google API, musisz je włączyć w projekcie Google Cloud. W jednym projekcie Google Cloud możesz włączyć co najmniej 1 interfejs API.Google Cloud Console
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 login
Ustaw projekt na projekt Cloud dla aplikacji:
gcloud config set project PROJECT_ID
Zastąp
PROJECT_ID
identyfikatorem projektu projektu Cloud 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 ma być używany w żądaniach przeglądarki. Określa domeny, z których aplikacja może wysyłać żądania 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ę 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.plist
aplikacji. - 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 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 zasubskrybować go:
Google Cloud Console
W konsoli Google Cloud otwórz stronę Pub/Sub:
Sprawdź, czy wybrany jest projekt Cloud 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żyjesz tej pełnej nazwy w późniejszym 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 wydarzeń w Google Chat:
chat-api-push@system.gserviceaccount.com
- Wersja zapoznawcza dla deweloperó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 wydarzeń w Google Chat:
- W menu Przypisz role kliknij
Pub/Sub Publisher
. - Kliknij Zapisz. Aktualizacja uprawnień do tematu może potrwać kilka minut.
gcloud
W projekcie w Google Cloud utwórz temat, uruchamiając to polecenie:
gcloud pubsub topics create TOPIC_ID
Zastąp
TOPIC_ID
unikalnym 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 Google Cloud dla Twojej aplikacji. Nazwy tematu użyjesz w następnym kroku oraz do utworzenia subskrypcji Google Workspace w późniejszym czasie.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
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
Aktualizacja uprawnień do tematu może potrwać kilka minut.
Utwórz subskrypcję Pub/Sub dla tematu:
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAME
Zastą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, która monitoruje pokój Google Chat (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 zasobu |
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 |
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 subskrypcji Google Workspace
Aby utworzyć subskrypcję, użyj metody subscriptions.create
interfejsu Google Workspace Events API, aby utworzyć zasób Subscription
.
Określ 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 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 subskrypcja Google Workspace dostarcza zdarzenia. Użyj tematu Pub/Sub utworzonego w poprzedniej sekcji.payloadOptions
: opcje określania, ile danych o zasobach 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ć subskrypcję Google Workspace:
Google Apps Script
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 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 Google Chat o identyfikatorzeAAAABBBB
, użyj//chat.googleapis.com/spaces/AAAABBBB
.EVENT_TYPES
: co najmniej 1 typ zdarzenia, na który chcesz się 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 Cloud. Sformatowano jakoprojects/PROJECT_ID/topics/TOPIC_ID
.RESOURCE_DATA
: wartość logiczna określająca, czy subskrypcja zawiera dane zasobów w ładunku:True
: obejmuje wszystkie dane zasobów. Aby ograniczyć liczbę uwzględnianych pól, dodaj polefieldMask
i 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ć subskrypcję Google Workspace, uruchom funkcję
createSubscription
w projekcie Apps Script.
Python
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 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, 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 Google Chat o identyfikatorzeAAAABBBB
, użyj//chat.googleapis.com/spaces/AAAABBBB
.EVENT_TYPES
: co najmniej 1 typ zdarzenia, na który chcesz się 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 Cloud. Sformatowano jakoprojects/PROJECT_ID/topics/TOPIC_ID
.RESOURCE_DATA
: wartość logiczna określająca, czy subskrypcja zawiera dane zasobów w ładunku:True
: obejmuje wszystkie dane zasobów. Aby ograniczyć liczbę uwzględnianych pól, dodaj polefieldMask
i 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ć subskrypcję 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 subskrypcji Google Workspace
Aby sprawdzić, czy otrzymujesz zdarzenia Google Workspace, możesz wywołać zdarzenie i pobrać wiadomości do subskrypcji Pub/Sub.
Aby przetestować subskrypcję Google Workspace:
Google Cloud Console
Wywoływanie co najmniej 1 typu zdarzeń w zasobie docelowym subskrypcji 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 Cloud 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 subskrypcji 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-ack
Zastą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 na podstawie zdarzenia 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 tak, aby korzystała z typu dostawy push, dzięki czemu aplikacja będzie 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 Google Chat jako aplikacja Google Chat
Aplikacja Chat 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 dokumentu wykrywania interfejsu 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ę wydarzeń w pokoju Google Chat 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.app
i 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 wydarzenia w pokoju czatu.
Poniższy przykładowy kod subskrybuje zdarzenia związane z wiadomościami w określonym pokoju na czacie:
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.list
metody w interfejsie Chat API lub z adresu URL pokoju.TOPIC_NAME
: pełna nazwa tematu Pub/Sub utworzonego w projekcie Cloud. Sformatowano jakoprojects/PROJECT_ID/topics/TOPIC_ID
.API_KEY
: klucz API utworzony na potrzeby budowania punktu końcowego usługi dla interfejsu Google Workspace Events API.RESOURCE_DATA
: wartość logiczna określająca, czy subskrypcja zawiera dane zasobów w ładunku:True
: obejmuje wszystkie dane zasobów. Aby ograniczyć liczbę uwzględnianych pól, dodaj polefieldMask
i 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.