Список участников в пространстве

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

  • В списке участников с аутентификацией приложения перечислены участники в пространствах, к которым у приложения Chat есть доступ, но исключаются членства в приложении Chat, включая собственное.
  • В списке участников с аутентификацией пользователя перечислены членства в пространствах, к которым имеет доступ аутентифицированный пользователь.
  • При указании членства в качестве администратора Google Workspace с аутентификацией пользователя с использованием прав администратора отображается список участников во всех пространствах вашей организации Google Workspace.

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

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

Питон

Получение списка участников в пространстве с аутентификацией пользователя

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

В следующем примере перечислены участники группы Google, люди и участники приложения, видимые для аутентифицированного пользователя.

Питон

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

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

    python3 chat_member_list_user.py
    

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

Получение списка участников в пространстве с аутентификацией приложения

Чтобы перечислить пользователей и приложение 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 возвращает список участников человеческого пространства (за исключением менеджеров пространств) из указанного пространства.

Внесите участников в список администраторов Google Workspace

Если вы администратор Google Workspace, вы можете вызвать метод list() , чтобы просмотреть список участников любого пространства в вашей организации Google Workspace. Chat API возвращает только данные о членстве пользователей (как внутренних, так и внешних) или групп Google из вашей организации и, следовательно, не учитывает членство в каких-либо приложениях чата.

Чтобы вызвать этот метод от имени администратора Google Workspace, выполните следующие действия:

  • Вызовите метод, используя аутентификацию пользователя, и укажите область авторизации , которая поддерживает вызов метода с правами администратора .
  • В вашем запросе укажите следующие параметры запроса:
    • Установите useAdminAccess значение true .
    • Чтобы возвращать только пользователей, установите filter member.type равным HUMAN .
    • Чтобы вернуть пользователей и группы, установите filter member.type , не равный BOT AND showGroups равный true .

Дополнительную информацию и примеры см. в разделе «Управление пространствами Google Chat от имени администратора Google Workspace» .

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

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

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