Z tego przewodnika dowiesz się, jak administrator Google Workspace może używać metody search()
w zasobach Space
interfejsu Google Chat API, aby zarządzać imionami pomieszczeń w organizacji i wykonywać zadania administracyjne.
Jako administrator Google Workspace możesz używać interfejsu Chat API tylko do zarządzania pomieszczeniami o nazwie, które są zdefiniowane jako SpaceType
w SPACE
. Nazwane pokoje to trwałe miejsca, w których użytkownicy wysyłają wiadomości, udostępniają pliki i współpracują. Nie możesz używać interfejsu API Google Chat do zarządzania wiadomościami bezpośrednimi (DM) ani czatami grupowymi.
Space
Zasób to miejsce, w którym użytkownicy i aplikacje czatu mogą wysyłać wiadomości, udostępniać pliki i współpracować. Istnieje kilka typów pokoi:
- Czaty to rozmowy między dwoma użytkownikami lub użytkownikiem a aplikacją czatu.
- Czaty grupowe to rozmowy między 3 lub większą liczbą użytkowników i aplikacji Google Chat.
- Nazwane pokoje to trwałe miejsca, w których użytkownicy wysyłają wiadomości, udostępniają pliki i współpracują.
Jako administrator Google Workspace możesz użyć interfejsu Chat API, aby wyszukiwać noszące nazwę pokoje w organizacji i zarządzać nimi w następujące sposoby:
- Sprawdzać pokoje w organizacji. Za pomocą metody
search()
możesz pobrać listę wszystkich pokoi w organizacji z szczegółowymi informacjami o ustawieniach każdego pokoju i metadanych, takich jak data utworzenia, data ostatniej aktywności, liczba członków, stan ustawień historii i możliwość zapraszania zewnętrznych gości. - Znajdowanie i usuwanie nieaktywnych pokoi Za pomocą metody
search()
możesz znaleźć przestrzenie, które nie były używane od określonej daty i godziny, a następnie je usunąć. Więcej informacji i przykładowy kod znajdziesz w artykule Znajdowanie i usuwanie nieaktywnych miejsc. - Wyeksportuj listę pokoi na podstawie kryteriów wyszukiwania. Za pomocą metody
search()
możesz pobrać listę pomieszczeń, które spełniają kryteria określone wquery
, i wyeksportować wyniki do pliku CSV na potrzeby analizy. - Znajdowanie menedżerów pokoju i kontaktowanie się z nimi Za pomocą metody
search()
możesz pobrać listę wszystkich pokoi w organizacji, a następnie za pomocą metodymembers.list()
pobrać listę wszystkich menedżerów pokoju. - Znajdź pokoje bez wyznaczonych menedżerów Za pomocą metody
search()
możesz pobrać listę wszystkich pokoi w organizacji, a następnie użyć metodymembers.list()
, aby pobrać listę pokoi, które nie mają żadnych menedżerów.
Wymagania wstępne
Python
- Konto Google Workspace w wersji Business lub Enterprise z dostępem do Google Chat.
- Skonfiguruj środowisko:
- Utwórz projekt Google Cloud.
- Skonfiguruj ekran zgody OAuth.
- Włącz i skonfiguruj interfejs Google Chat API, podając nazwę, ikonę i opis swojej aplikacji do obsługi czatu.
- Zainstaluj bibliotekę klienta interfejsu API Google dla języka Python.
-
Utwórz identyfikator klienta OAuth dla aplikacji komputerowej. Aby uruchomić przykładowy skrypt w tym przewodniku, zapisz dane logowania jako plik JSON o nazwie
client_secrets.json
w katalogu lokalnym.
- Wybierz zakres autoryzacji, który obsługuje uwierzytelnianie użytkowników.
- Musisz mieć uprawnienia administratora do zarządzania czatem i rozmowami w pokojach Google Chat w swojej organizacji Google Workspace.
Wywoływanie interfejsu Google Chat API przez administratora
Aby uwierzytelnić się jako użytkownik z uprawnieniami administratora, w żądaniu musisz podać:
- Określ zakres autoryzacji, który obsługuje uwierzytelnianie użytkownika przy użyciu uprawnień administratora.
- W polu
useAdminAccess
ustaw wartośćtrue
.
W tej sekcji znajdziesz te przykłady wywołania interfejsu Chat API przez administratora:
- Wyszukaj pokoje, wywołując metodę
search()
. - Znajduj i usuwaj nieaktywne przestrzenie w organizacji, wywołując metodę
search()
, aby zwrócić listę nieaktywnych przestrzeni, a następnie wywołać metodędelete()
, aby je usunąć.
Wyszukaj pokoje w organizacji
To przykład, który pokazuje, jak administratorzy Google Workspace mogą używać metody search()
zasobu Space
interfejsu API Chat do wyszukiwania przestrzeni w organizacji na podstawie określonych kryteriów.
Aby wywołać metodę search()
z uwierzytelnieniem użytkownika i uprawnieniami administratora, musisz określić w żądaniu:
- Określ zakres autoryzacji
chat.admin.spaces
lubchat.admin.spaces.readonly
. - Wpisz
useAdminAccess=true
. - Określ parametry wyszukiwania
query
, aby filtrować wyniki:customer = "customers/my_customer"
– wymagana wartość, a jedyną obsługiwaną wartością jestcustomers/my_customer
spaceType = "SPACE"
– wymagana, a jedyną obsługiwaną wartością jestSPACE
- Opcjonalnie można dodać 1 lub więcej dodatkowych zapytań, aby jeszcze bardziej zawęzić wyniki wyszukiwania w pokoju, np. słowa kluczowe w nazwach wyświetlanych (
displayName
), datę utworzenia (createTime
) lub aktywność w pokoju (lastActiveTime
).
Poniższy kod pokazuje, jak za pomocą uprawnień administratora wyszukać pokoje o nazwie wyświetlanej zawierającej „Hello” i „World” w dowolnej kombinacji:
Python
- W katalogu roboczym utwórz plik o nazwie
search_spaces_for_hello_world.py
. Dodaj do pliku
search_spaces_for_hello_world.py
ten kod:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build SCOPES = [ 'https://www.googleapis.com/auth/chat.admin.spaces.readonly', ] def main(): # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES, ) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) spaces = [] page_token = '' # Search for all spaces. while True: result = ( chat.spaces() .search( useAdminAccess=True, query=( 'customer = "customers/my_customer"' 'AND spaceType = "SPACE"' 'AND displayName:"Hello World"' ) pageToken=page_token, ) .execute() ) if 'spaces' not in result: print('No spaces found named Hello World.') return spaces.extend(result['spaces']) if 'nextPageToken' in result: page_token = result['nextPageToken'] else: break print(str(len(spaces)) + ' spaces found:') # Prints the list of spaces. print(spaces)
W katalogu roboczym skompiluj i uruchom przykład:
python3 search_spaces_for_hello_world.py
Znajdowanie i usuwanie nieaktywnych pokoju
Ten przykład pokazuje, jak administratorzy Google Workspace mogą używać metody search()
zasobu Space
interfejsu Chat API, aby znajdować nieaktywne pokoje, a następnie je usuwać za pomocą metody delete()
z parametrem useAdminAccess
.
Nieaktywne pokoje Google Chat, które nie są już aktywnie używane, mogą zajmować cenne miejsce na dane i zaśmiecać interfejs. Za pomocą metody search()
administratorzy mogą znaleźć pokoje, które nie były używane od określonej daty i godziny, np. 2 miesiące temu. Po wyliczeniu listy przestrzeni administratorzy mogą wykonywać na niej różne działania, np. aktualizować ją lub usuwać.
Aby wyszukać listę nieaktywnych przestrzeni, a następnie usunąć je za pomocą uwierzytelniania użytkownika i uprawnień administratora, prześlij w żądaniach te informacje:
- Aby wyszukać nieaktywne pokoje, określ:
- Określ zakres autoryzacji
chat.admin.spaces
lubchat.admin.spaces.readonly
. - Wywołaj metodę
search()
zasobuSpaces
. - Ustaw parametr
INACTIVE_SPACE_DEADLINE
na datę i godzinę ostatniej aktywności, która określa przestrzenie do zwrócenia. - Wpisz
useAdminAccess=true
. - Określ parametry wyszukiwania
query
, aby filtrować wyniki:customer = "customers/my_customer"
– wymagana i jedyna obsługiwana wartość tocustomers/my_customer
spaceType = "SPACE"
– wymagana, a jedyną obsługiwaną wartością jestSPACE
lastActiveTime
– aby filtrować żądanie tak, aby zwracało tylko nieaktywne pokoje, określ parametrlastActiveTime
- Określ zakres autoryzacji
- Aby usunąć nieaktywne pokoje z wyników wyszukiwania, określ:
- Określ zakres upoważnienia
chat.admin.delete
. - Wywołaj metodę
delete()
zasobuSpaces
. - Wpisz
useAdminAccess=true
.
- Określ zakres upoważnienia
Poniższy kod pokazuje, jak wyszukać nieaktywne pokoje i usunąć je za pomocą uprawnień administratora:
Python
W katalogu roboczym utwórz plik o nazwie
find_and_delete_inactive_spaces.py
.Dodaj do pliku
find_and_delete_inactive_spaces.py
ten kod:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build SCOPES = [ 'https://www.googleapis.com/auth/chat.admin.spaces.readonly', 'https://www.googleapis.com/auth/chat.admin.delete', ] # Any spaces that have not been active since this time will be deleted. INACTIVE_SPACE_DEADLINE = '"INACTIVE_DATE"' def main(): # Authenticate with Google Workspace # and get user authorization. flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES, ) creds = flow.run_local_server() # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds) spaces = [] page_token = '' # Search for all inactive spaces. while True: result = ( chat.spaces() .search( useAdminAccess=True, query=( 'customer = "customers/my_customer" AND spaceType = "SPACE" AND' ' lastActiveTime < ' ) + INACTIVE_SPACE_DEADLINE, pageToken=page_token, ) .execute() ) if 'spaces' not in result: print('No inactive spaces found.') return spaces.extend(result['spaces']) if 'nextPageToken' in result: page_token = result['nextPageToken'] else: break print(str(len(spaces)) + ' inactive spaces found:') # Prints the list of inactive spaces. print(spaces) # Delete all inactive spaces. for space in spaces: ( chat.spaces() .delete( useAdminAccess=True, name=space['name'], ) .execute() ) print( 'Deleted space: ' + space['displayName'] + ', Resource Name: ' + space['name'] ) if __name__ == '__main__': main()
W kodzie zastąp
INACTIVE_DATE
wartością odpowiadającą dacie i czasu w formacie RRRR-MM-DDTHH:MM:SS+HH:MM. Przykład: „2024-06-01T00:00:00+00:00”.W katalogu roboczym skompiluj i uruchom przykład:
python3 find_and_delete_inactive_spaces.py
Powiązane artykuły
- Usuwanie pokoi
- Wyświetlanie listy użytkowników w pokoju
- Zarządzanie pokojami Google Chat jako administrator Google Workspace
spaces.search()
metoda