Wyświetlenie listy pokoi

Z tego przewodnika dowiesz się, jak używać zasobu list w zasobie Space interfejsu Google Chat API do wyświetlania listy pokoi. W wynikach wyszukiwania pokoi zwracana jest lista pokoi, którą można filtrować na strony.

Zasób Space reprezentuje miejsce, w którym osoby i aplikacje do obsługi czatu mogą wysyłać wiadomości, udostępniać pliki i współpracować. Istnieje kilka typów pokoi:

  • Czaty to rozmowy między 2 użytkownikami lub użytkownikiem i aplikacją do obsługi czatu.
  • Czaty grupowe to rozmowy między co najmniej 3 użytkownikami i aplikacjami do obsługi czatu.
  • Pokoje z nazwą to trwałe miejsca, w których użytkownicy wysyłają wiadomości, udostępniają pliki i współpracują.

Lista pokoi z uwierzytelnianiem aplikacji zawiera listę pokoi, do których aplikacja Google Chat ma dostęp. Wyświetlenie listy pokoi z uwierzytelnianiem użytkownika to lista pokoi, do których ma dostęp uwierzytelniony użytkownik.

Wymagania wstępne

Python

  • Python 3.6 lub nowszy
  • Narzędzie do zarządzania pakietami pip
  • Najnowsze biblioteki klienta Google do języka Python. Aby je zainstalować lub zaktualizować, uruchom w interfejsie wiersza poleceń to polecenie:

    pip3 install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib oauth2client
    
  • Opublikowana aplikacja Google Chat. Aby utworzyć i opublikować aplikację do obsługi czatu, przeczytaj artykuł Tworzenie aplikacji Google Chat.

  • Skonfigurowano autoryzację dla aplikacji Google Chat. Pokoje z informacjami o aplikacji obsługują obie te metody uwierzytelniania:

Wyświetlenie listy pokoi z uwierzytelnianiem użytkownika

Aby wyświetlić listę pokoi w Google Chat, przekaż w swojej prośbie te elementy:

Poniżej znajduje się przykład listy nazwanych pokoi i czatów grupowych (ale nie filtrowanych wiadomości bezpośrednich), które są widoczne dla uwierzytelnionego użytkownika:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_space_list.py.
  2. Umieść ten kod w pliku chat_space_list.py:

    import os.path
    
    from google.auth.transport.requests import Request
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    from googleapiclient.errors import HttpError
    
    # Define your app's authorization scopes.
    # When modifying these scopes, delete the file token.json, if it exists.
    SCOPES = ["https://www.googleapis.com/auth/chat.spaces.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists named spaces and group chats (but not direct messages)
        visible to the authenticated user.
        '''
    
        # 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)
    
        # Use the service endpoint to call Chat API.
        result = chat.spaces().list(
    
              # An optional filter that returns named spaces or unnamed group chats,
              # but not direct messages (DMs).
              filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
          ).execute()
    
        # Prints the returned list of spaces.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_space_list.py
    

Interfejs Chat API zwraca tablicę nazwanych pokoi i czatów grupowych z podziałem na strony.

Wyświetlanie listy pokoi z uwierzytelnianiem w aplikacji

Aby wyświetlić listę pokoi w Google Chat, przekaż w swojej prośbie te elementy:

Poniżej znajduje się przykład listy nazwanych pokoi i czatów grupowych (ale nie czatów) widocznych dla aplikacji Google Chat:

Python

  1. W katalogu roboczym utwórz plik o nazwie chat_space_list_app.py.
  2. Umieść ten kod w pliku chat_space_list_app.py:

    from httplib2 import Http
    from oauth2client.service_account import ServiceAccountCredentials
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = ServiceAccountCredentials.from_json_keyfile_name(
        'credentials.json', SCOPES)
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', http=CREDENTIALS.authorize(Http()))
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().list(
    
            # An optional filter that returns named spaces or unnamed
            # group chats, but not direct messages (DMs).
            filter='spaceType = "SPACE" OR spaceType = "GROUP_CHAT"'
    
        ).execute()
    
    print(result)
    
  3. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_space_list_app.py
    

Interfejs Chat API zwraca tablicę pokoi podzieloną na strony.

Dostosuj podział na strony lub filtruj listę

Aby wyświetlić listę pokoi w Google Chat, przekaż te opcjonalne parametry zapytania, aby dostosować podział pokoi na strony lub filtrować widoczne pokoje:

  • pageSize: maksymalna liczba spacji do zwrócenia. Usługa może zwrócić mniej niż ta wartość. Jeśli wartość nie zostanie określona, zostanie zwróconych maksymalnie 100 spacji. Maksymalna wartość to 1000, a wartości powyżej 1000 są automatycznie zmieniane na 1000.
  • pageToken: token strony otrzymany z poprzedniego wywołania list pokoi. Podaj ten token, aby pobrać kolejną stronę. Podczas podziału na strony wartość filtra powinna odpowiadać wywołaniu, które dostarczyło token strony. Przekazywanie innej wartości może doprowadzić do nieoczekiwanych wyników.
  • filter: filtr zapytania. Wymaga uwierzytelniania użytkownika. Szczegółowe informacje o obsługiwanych zapytaniach znajdziesz w opisie metody spaces.list.