Список пользователей и приложений Google Chat в пространстве

В этом руководстве объясняется, как использовать метод list на ресурсе membership API Google Chat для составления списка пользователей и приложения Chat в пространстве в виде разбитого на страницы и фильтруемого списка членства в пространстве. В списке участников с проверкой подлинности приложения перечислены участники в пространствах, к которым у приложения Chat есть доступ, но исключаются членства в приложении Chat, в том числе собственные. В списке участников с аутентификацией пользователя перечислены членства в пространствах, к которым имеет доступ аутентифицированный пользователь.

Ресурс Membership указывает, приглашен ли пользователь или приложение Google Chat в пространство, участвует в нем или отсутствует в нем.

Предварительные условия

Питон

  • Python 3.6 или выше
  • Инструмент управления пакетами pip
  • Новейшие клиентские библиотеки Google для Python. Чтобы установить или обновить их, выполните следующую команду в интерфейсе командной строки:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • Проект Google Cloud с включенным и настроенным API Google Chat. Инструкции см. в разделе Создание приложения Google Chat .
  • Авторизация настроена для приложения Чат. Членство в листинге поддерживает оба следующих метода аутентификации:

Список пользователей и приложение Chat в пространстве с аутентификацией пользователей

Чтобы перечислить пользователей и приложение Chat в пространстве, к которому имеет доступ аутентифицированный пользователь, передайте в своем запросе следующее:

В следующем примере перечислены члены человеческого пространства (не менеджеры пространства), видимые аутентифицированному пользователю, поскольку filter установлено значение ROLE_Member :

Питон

  1. В своем рабочем каталоге создайте файл с chat_member_list_user.py .
  2. Включите следующий код в chat_member_list_user.py :

    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 human space members (but not space managers) 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',
    
            # An optional filter that returns only human space members.
            filter = 'member.type = "HUMAN" AND role = "ROLE_MEMBER"'
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. В коде замените SPACE именем пространства, которое можно получить с помощью метода spaces.list в Chat API или из URL-адреса пространства.

  4. В своем рабочем каталоге соберите и запустите пример:

    python3 chat_member_list_user.py
    

API Google Chat возвращает список участников человеческого пространства (за исключением менеджеров пространств) и участников приложений из указанного пространства.

Список пользователей и приложения Chat в пространстве с аутентификацией приложения

Чтобы перечислить пользователей и приложение Chat в пространстве, к которому имеет доступ приложение, прошедшее проверку подлинности, передайте в своем запросе следующее:

В следующем примере перечислены участники человеческого пространства (не менеджеры пространства), видимые в приложении Chat:

Питон

  1. В своем рабочем каталоге создайте файл с chat_member_list_app.py .
  2. Включите следующий код в chat_member_list_app.py :

    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. В коде замените SPACE именем пространства, которое можно получить с помощью метода spaces.list в Chat API или из URL-адреса пространства.

  4. В своем рабочем каталоге соберите и запустите пример:

    python3 chat_member_list_app.py
    

API Google Chat возвращает список участников человеческого пространства (за исключением менеджеров пространств) из указанного пространства.

Настройте нумерацию страниц или отфильтруйте список

Чтобы перечислить членство, передайте следующие параметры запроса, чтобы настроить разбивку на страницы или отфильтровать перечисленное членство:

  • pageSize : максимальное количество возвращаемых членств. Служба может вернуть меньше этого значения. Если не указано, возвращается не более 100 пробелов. Максимальное значение — 1000; значения выше 1000 автоматически изменяются на 1000.
  • pageToken : токен страницы, полученный в результате предыдущего вызова пространств списка. Предоставьте этот токен для получения следующей страницы. При разбиении на страницы значение фильтра должно соответствовать вызову, который предоставил токен страницы. Передача другого значения может привести к неожиданным результатам.
  • filter : фильтр запроса. Требует аутентификации пользователя . Подробные сведения о поддерживаемых запросах см. в методе spaces.members.list .