Wyświetlanie listy użytkowników w pokoju

Z tego przewodnika dowiesz się, jak używać metody list w zasobie membership interfejsu Google Chat API do wyświetlania użytkowników w pokoju w postaci podzielonej na strony, możliwej do filtrowania listy użytkowników w pokoju. Lista użytkowników korzystających z uwierzytelniania aplikacji zawiera listę użytkowników w pokojach, do których aplikacja Google Chat ma dostęp. Nie uwzględnia przynależności do tej aplikacji, w tym własnych. Lista użytkowników z funkcją uwierzytelniania użytkowników zawiera listę użytkowników w pokojach, do których ma dostęp uwierzytelniony użytkownik.

Zasób Membership informuje o tym, czy użytkownik lub aplikacja Google Chat został zaproszony do pokoju, jego część lub brak w nim.

Wymagania wstępne

Python

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

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • Projekt Google Cloud z włączonym i skonfigurowanym interfejsem Google Chat API. Instrukcje znajdziesz w artykule Tworzenie aplikacji w Google Chat.
  • Autoryzacja skonfigurowana dla aplikacji Google Chat. Subskrypcja strony aplikacji obsługuje obie te metody uwierzytelniania:

Wyświetlanie listy użytkowników w pokoju z uwierzytelnianiem użytkowników

Aby wyświetlić listę użytkowników, Grup dyskusyjnych Google i aplikacji Google Chat w pokoju, do którego ma dostęp uwierzytelniony użytkownik, przekaż w żądaniu:

  • W przypadku uwierzytelniania użytkownika określ zakres autoryzacji chat.memberships.readonly lub chat.memberships.
  • Wywołaj metodę list w zasobie membership.
  • Aby wyświetlić listę Grup dyskusyjnych Google, ustaw parametr zapytania showGroups na true.

Poniższy przykład zawiera listę członków grup dyskusyjnych Google, użytkowników i aplikacji widocznych dla uwierzytelnionego użytkownika.

Python

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

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    
    # 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.memberships.readonly"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then lists Google Group, human, and app members in a specified space.
        '''
    
        # 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().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # Set this parameter to list Google Groups.
            showGroups = 'true'
    
        ).execute()
    
        # Prints the list of memberships.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. W kodzie zastąp SPACE nazwą pokoju, którą możesz uzyskać za pomocą metody spaces.list w interfejsie Chat API lub z adresu URL pokoju.

  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_member_list_user.py
    

Interfejs Google Chat API zwraca listę osób z grupy dyskusyjnej Google, użytkowników i członków aplikacji ze wskazanego pokoju.

Wyświetlanie listy użytkowników w pokoju z uwierzytelnianiem aplikacji

Aby wyświetlić listę użytkowników i aplikacji Google Chat w pokoju, do którego ma dostęp uwierzytelniona aplikacja, przekaż w żądaniu:

Ten przykład zawiera listę użytkowników pokoju (nie menedżerów pokoju) widocznych dla aplikacji Google Chat:

Python

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

    from google.oauth2 import service_account
    from apiclient.discovery import build
    
    # Specify required scopes.
    SCOPES = ['https://www.googleapis.com/auth/chat.bot']
    
    # Specify service account details.
    CREDENTIALS = (
        service_account.Credentials.from_service_account_file('credentials.json')
        .with_scopes(SCOPES)
    )
    
    # Build the URI and authenticate with the service account.
    chat = build('chat', 'v1', credentials=CREDENTIALS)
    
    # Use the service endpoint to call Chat API.
    result = chat.spaces().members().list(
    
            # The space for which to list memberships.
            parent = 'spaces/SPACE',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
    print(result)
    
  3. W kodzie zastąp SPACE nazwą pokoju, którą możesz uzyskać za pomocą metody spaces.list w interfejsie Chat API lub z adresu URL pokoju.

  4. W katalogu roboczym skompiluj i uruchom przykład:

    python3 chat_member_list_app.py
    

Interfejs Google Chat API zwraca listę użytkowników pokoju (oprócz menedżerów pokoju) z określonego pokoju.

Dostosuj podział na strony lub filtruj listę

Aby wyświetlić listę członków, przekaż te parametry zapytania w celu dostosowania podziału na strony lub filtrowania członkostwa na liście:

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