Répertorier les utilisateurs et les applications Google Chat d'un espace

Ce guide explique comment utiliser la méthode list sur la ressource membership de l'API Google Chat pour répertorier les utilisateurs et l'application Chat d'un espace sous la forme d'une liste paginée et filtrable d'abonnements dans un espace. La liste des adhésions avec l'authentification d'application répertorie les adhésions aux espaces auxquels l'application Chat a accès, mais exclut les adhésions à l'application Chat, y compris les siennes. La liste des adhésions avec Authentification des utilisateurs répertorie les adhésions aux espaces auxquels l'utilisateur authentifié a accès.

La ressource Membership indique si un utilisateur humain ou une application Google Chat est invité à un espace, en fait partie ou absent.

Prérequis

Python

  • Python 3.6 ou version ultérieure
  • L'outil de gestion des packages pip
  • Les dernières bibliothèques clientes Google pour Python. Pour les installer ou les mettre à jour, exécutez la commande suivante dans votre interface de ligne de commande:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib google-auth
    
  • Un projet Google Cloud avec l'API Google Chat activée et configurée Pour connaître la procédure à suivre, consultez Créer une application Google Chat.
  • Autorisation configurée pour l'application Chat. La liste des membres est compatible avec les deux méthodes d'authentification suivantes:

Lister les utilisateurs et l'application Chat dans un espace avec authentification des utilisateurs

Pour répertorier les utilisateurs et l'application Chat dans un espace auquel l'utilisateur authentifié a accès, transmettez les éléments suivants dans votre requête:

L'exemple suivant répertorie les membres de l'espace humain (et non les gestionnaires de l'espace) visibles par l'utilisateur authentifié, car filter est défini sur ROLE_Member:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_member_list_user.py.
  2. Incluez le code suivant dans 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. Dans le code, remplacez SPACE par le nom d'un espace, que vous pouvez obtenir à partir de la méthode spaces.list de l'API Chat ou de l'URL d'un espace.

  4. Dans votre répertoire de travail, créez et exécutez l'exemple:

    python3 chat_member_list_user.py
    

L'API Google Chat renvoie une liste des membres humains de l'espace (à l'exclusion des gestionnaires de l'espace) et des membres de l'application de l'espace spécifié.

Lister les utilisateurs et l'application Chat dans un espace avec authentification d'application

Pour répertorier les utilisateurs et l'application Chat dans un espace auquel l'application authentifiée a accès, transmettez les éléments suivants dans votre requête:

L'exemple suivant répertorie les membres d'un espace humain (et non les gestionnaires de l'espace) visibles par l'application Chat:

Python

  1. Dans votre répertoire de travail, créez un fichier nommé chat_member_list_app.py.
  2. Incluez le code suivant dans 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. Dans le code, remplacez SPACE par le nom d'un espace, que vous pouvez obtenir à partir de la méthode spaces.list de l'API Chat ou de l'URL d'un espace.

  4. Dans votre répertoire de travail, créez et exécutez l'exemple:

    python3 chat_member_list_app.py
    

L'API Google Chat renvoie la liste des membres de l'espace spécifié (à l'exclusion des gestionnaires de l'espace).

Personnaliser la pagination ou filtrer la liste

Pour répertorier les adhésions, transmettez les paramètres de requête suivants afin de personnaliser la pagination ou de filtrer les adhésions répertoriées:

  • pageSize: nombre maximal de souscriptions à renvoyer. Le service peut renvoyer une valeur inférieure à cette valeur. Si aucune valeur n'est spécifiée, 100 espaces au maximum sont renvoyés. La valeur maximale est 1 000. Les valeurs supérieures à 1 000 sont automatiquement remplacées par 1 000.
  • pageToken: jeton de page, reçu lors d'un précédent appel d'espaces de liste. Fournissez ce jeton pour récupérer la page suivante. Lors de la pagination, la valeur du filtre doit correspondre à l'appel qui a fourni le jeton de page. La transmission d'une valeur différente peut entraîner des résultats inattendus.
  • filter: filtre de requête. Nécessite une authentification utilisateur. Pour en savoir plus sur les requêtes acceptées, consultez la méthode spaces.members.list.