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:
- skonfigurować środowisko,
- utworzyć temat Google Cloud Pub/Sub i go zasubskrybować, Użyj tego dokumentu jako punktu końcowego do odbierania zdarzeń Google Workspace.
- Wywołaj metodę
createinterfejsu Google Workspace Events API w zasobieSubscription. - Przetestuj subskrypcję Google Workspace, aby sprawdzić, czy temat Pub/Sub otrzymuje zdarzenia, które subskrybujesz.
- 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:
- 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, który jest tworzony automatycznie przez Apps Script.
- Wszystkie zakresy dodane podczas konfigurowania ekranu zgody OAuth musisz też dodać do pliku
appsscript.jsonw projekcie Apps Script. Jeśli na przykład podano zakreschat.messages, dodaj: - 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, 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 na ekranie zgody OAuth skonfigurowanym dla aplikacji. Podczas konfigurowania ekranu zgody musisz określić zakres obsługi każdego typu zdarzenia w ramach subskrypcji. Aby dowiedzieć się, jak skonfigurować ekran zgody i określić wymagane zakresy, przeczytaj artykuł Wybieranie zakresów.
- Aby subskrybować zdarzenie w Google Chat jako aplikacja do Google Chat, wymagane jest uwierzytelnianie aplikacji z jednorazowym zatwierdzeniem 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ć, 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:
- 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, 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 na ekranie zgody OAuth skonfigurowanym dla aplikacji. Podczas konfigurowania ekranu zgody musisz określić zakres obsługi każdego typu zdarzenia w ramach subskrypcji. Aby dowiedzieć się, jak skonfigurować ekran zgody i określić wymagane zakresy, przeczytaj artykuł Wybieranie zakresów.
- Aby subskrybować zdarzenie w Google Chat jako aplikacja do Google Chat, wymagane jest uwierzytelnianie aplikacji z jednorazowym zatwierdzeniem przez administratora.
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:
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 w projekcie w chmurze dla swojej aplikacji.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
- W konsoli Google Cloud otwórz Menu > Platforma uwierzytelniania Google > Klienty.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Aplikacja internetowa.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
- 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.
- 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.
- 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
- W konsoli Google Cloud otwórz Menu > Platforma Google Auth > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Android.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana 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.
- 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.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klienta OAuth 2.0”.
iOS
- W konsoli Google Cloud otwórz Menu > Platforma uwierzytelniania Google > Klienty.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > iOS.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana 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 sklepie z aplikacjami Apple, wpisz identyfikator sklepu z aplikacjami.
- Opcjonalnie: w polu Identyfikator zespołu wpisz unikalny 10-znakowy ciąg znaków wygenerowany przez Apple i przypisany do Twojego zespołu.
- 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.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klienta OAuth 2.0”.
Aplikacja Chrome
- W konsoli Google Cloud otwórz Menu > Platforma uwierzytelniania Google > Klienty.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Rozszerzenie do Chrome.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
- 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.
- 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.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klienta OAuth 2.0”.
Aplikacja komputerowa
- W konsoli Google Cloud otwórz Menu > Platforma uwierzytelniania Google > Klienty.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Aplikacja komputerowa.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
- 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.
- 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
- W konsoli Google Cloud otwórz Menu > Platforma Google Auth > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Telewizory i urządzenia wejściowe z ograniczonymi możliwościami.
- W polu Nazwa wpisz nazwę danych logowania. Ta nazwa jest wyświetlana tylko w konsoli Google Cloud.
- 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.
- Kliknij Utwórz.
Nowo utworzone dane logowania pojawią się w sekcji „Identyfikatory klienta OAuth 2.0”.
Universal Windows Platform (UWP)
- W konsoli interfejsów API Google otwórz Menu > > Klienci.
- Kliknij Utwórz klienta.
- Kliknij Typ aplikacji > Uniwersalna platforma systemu 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 oraz w Centrum partnerskim.
- 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.
- 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.
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 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
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, na przykład
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, na przykład
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.Przyznaj uprawnienia do publikowania wiadomości Pub/Sub w Twoim temacie:
- Na stronie tematu przejdź do panelu bocznego i otwórz kartę Uprawnienia.
- Kliknij Dodaj podmiot zabezpieczeń.
- W polu Dodaj podmioty zabezpieczeń dodaj konto usługi dla aplikacji Google Workspace, która dostarcza zdarzenia do Twojej subskrypcji:
- W przypadku zdarzeń w Google Chat:
chat-api-push@system.gserviceaccount.com. - 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ń w Google Chat:
- W menu Przypisz role wybierz
Pub/Sub Publisher. - Kliknij Zapisz. Aktualizacja uprawnień 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.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.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 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:
- W przypadku aplikacji do Google Chat (utworzonych jako dodatki do Google Workspace, które rozszerzają 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.
- W przypadku aplikacji do Google Chat, które nie są dodatkami, użyj
chat-api-push@system.gserviceaccount.com. Więcej informacji znajdziesz w artykule Tworzenie aplikacji Google Chat, która korzysta z Pub/Sub.
- 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ń tematu może potrwać kilka minut.
Utwórz subskrypcję Pub/Sub dla tematu:
gcloud pubsub subscriptions create SUBSCRIPTION_NAME --topic=TOPIC_NAMEZastą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 |
gdzie SPACE to identyfikator w
nazwie zasobu zasobu |
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 |
|
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 |
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żytkowników. |
| Klient ( wersja przedpremierowa dla programistów) |
gdzie CUSTOMER to identyfikator klienta. Możesz też użyć aliasu |
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 |
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 |
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 |
|
| Użytkownik | //cloudidentity.googleapis.com/users/USER
gdzie USER to identyfikator w polu
|
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
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 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 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 zawiera dane zasobu w ładunku:True: obejmuje wszystkie dane zasobów. Aby ograniczyć pola, które mają być uwzględniane, dodaj polefieldMaski 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.
Aby utworzyć subskrypcję 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 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 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 zawiera dane zasobu w ładunku:True: obejmuje wszystkie dane zasobów. Aby ograniczyć pola, które mają być uwzględniane, dodaj polefieldMaski 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.
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
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ść.
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 jej nazwę.
Kliknij kartę Wiadomości.
Kliknij Pull (Pobierz). Wygenerowanie wiadomości Pub/Sub przez zdarzenie może potrwać kilka minut.
gcloud
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ść.
Uruchom to polecenie:
gcloud pubsub subscriptions pull PUBSUB_SUBSCRIPTION_NAME --format=json --limit=MESSAGE_COUNT --auto-ackZastąp te 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 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:
- W razie potrzeby utwórz aplikację do Google Chat.
Subskrybować zasób Google Chat, ale:
- Zamiast uwierzytelniania użytkownika uwierzytelniaj jako aplikacja Google Chat z jednorazowym zatwierdzeniem przez administratora.
Określ zakresy autoryzacji, które umożliwiają aplikacji Google Chat subskrybowanie zdarzeń Google Chat. Te zakresy autoryzacji zawsze zaczynają się od
chat.appi 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ą metodyspaces.listw 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 zawiera dane zasobu w ładunku:True: obejmuje wszystkie dane zasobów. Aby ograniczyć pola, które mają być uwzględniane, dodaj polefieldMaski 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ć aliasumy_customerdla organizacji Google Workspace aplikacji Google Chat.TOPIC_NAME: pełna nazwa tematu Pub/Sub utworzonego w projekcie w chmurze. Sformatowano jakoprojects/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 polefieldMaski 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.