Mitglieder in einem Gruppenbereich auflisten

In diesem Leitfaden wird beschrieben, wie Sie die Methode list() für die Membership-Ressource der Google Chat API verwenden, um Mitglieder in einem Gruppenbereich als paginatierte, filterbare Liste der Mitgliedschaften in einem Gruppenbereich aufzulisten.

  • Wenn Sie Mitgliedschaften mit App-Authentifizierung auflisten, werden Mitgliedschaften in Gruppenbereichen aufgeführt, auf die die Chat-App Zugriff hat. Mitgliedschaften in der Chat-App selbst werden jedoch nicht berücksichtigt.
  • Wenn Sie Mitgliedschaften mit Nutzerauthentifizierung auflisten, werden Mitgliedschaften in Gruppenbereichen aufgeführt, auf die der authentifizierte Nutzer Zugriff hat.
  • Wenn Sie als Google Workspace-Administrator mit Nutzerauthentifizierung mit Administratorberechtigungen Mitgliedschaften auflisten, werden Mitgliedschaften in allen Gruppenbereichen in Ihrer Google Workspace-Organisation aufgeführt.

Die Ressource Membership gibt an, ob ein Nutzer oder eine Google Chat-App zu einem Gruppenbereich eingeladen wurde, zu einem Gruppenbereich gehört oder nicht zu einem Gruppenbereich gehört.

Vorbereitung

Node.js

Python

Java

Apps Script

Mitglieder in einem Gruppenbereich mit Nutzerauthentifizierung auflisten

Wenn Sie Nutzer, Google Groups und die Chat-App in einem Gruppenbereich auflisten möchten, auf den der authentifizierte Nutzer Zugriff hat, geben Sie Folgendes in Ihrer Anfrage an:

  • Gib bei der Nutzerauthentifizierung den Autorisierungsbereich chat.memberships.readonly oder chat.memberships an.
  • Rufen Sie die Methode ListMemberships() auf.
  • Wenn Sie Google-Gruppen auflisten möchten, legen Sie für den Abfrageparameter showGroups den Wert true fest.

Im folgenden Beispiel sind Google-Gruppenmitglieder, natürliche Personen und App-Mitglieder aufgeführt, die für den authentifizierten Nutzer sichtbar sind.

Node.js

chat/client-libraries/cloud/list-memberships-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.memberships.readonly'];

// This sample shows how to list memberships with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here
    parent: 'spaces/SPACE_NAME',
    // Filter membership by type (HUMAN or BOT) or role (ROLE_MEMBER or
    // ROLE_MANAGER)
    filter: 'member.type = "HUMAN"'
  };

  // Make the request
  const pageResult = chatClient.listMembershipsAsync(request);

  // Handle the response. Iterating over pageResult will yield results and
  // resolve additional pages automatically.
  for await (const response of pageResult) {
    console.log(response);
  }
}

main().catch(console.error);

Python

chat/client-libraries/cloud/list_memberships_user_cred.py
from authentication_utils import create_client_with_user_credentials
from google.apps import chat_v1 as google_chat

SCOPES = ["https://www.googleapis.com/auth/chat.memberships.readonly"]

# This sample shows how to list memberships with user credential
def list_memberships_user_cred():
    # Create a client
    client = create_client_with_user_credentials(SCOPES)

    # Initialize request argument(s)
    request = google_chat.ListMembershipsRequest(
        # Replace SPACE_NAME here
        parent = 'spaces/SPACE_NAME',
        # Filter membership by type (HUMAN or BOT) or role (ROLE_MEMBER or
        # ROLE_MANAGER)
        filter = 'member.type = "HUMAN"',
        # Number of results that will be returned at once
        page_size = 100
    )

    # Make the request
    page_result = client.list_memberships(request)

    # Handle the response. Iterating over page_result will yield results and
    # resolve additional pages automatically.
    for response in page_result:
        print(response)

list_memberships_user_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/ListMembershipsUserCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.ListMembershipsRequest;
import com.google.chat.v1.ListMembershipsResponse;
import com.google.chat.v1.Membership;

// This sample shows how to list memberships with user credential.
public class ListMembershipsUserCred {

  private static final String SCOPE =
    "https://www.googleapis.com/auth/chat.memberships.readonly";

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithUserCredentials(
          ImmutableList.of(SCOPE))) {
      ListMembershipsRequest.Builder request = ListMembershipsRequest.newBuilder()
        // Replace SPACE_NAME here.
        .setParent("spaces/SPACE_NAME")
        // Filter membership by type (HUMAN or BOT) or role
        // (ROLE_MEMBER or ROLE_MANAGER).
        .setFilter("member.type = \"HUMAN\"")
        // Number of results that will be returned at once.
        .setPageSize(10);

      // Iterating over results and resolve additional pages automatically.
      for (Membership response :
          chatServiceClient.listMemberships(request.build()).iterateAll()) {
        System.out.println(JsonFormat.printer().print(response));
      }
    }
  }
}

Apps Script

Chat/erweiterter-Service/Main.gs
/**
 * This sample shows how to list memberships with user credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.memberships.readonly'
 * referenced in the manifest file (appsscript.json).
 */
function listMembershipsUserCred() {
  // Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here
  const parent = 'spaces/SPACE_NAME';
  // Filter membership by type (HUMAN or BOT) or role (ROLE_MEMBER or
  // ROLE_MANAGER)
  const filter = 'member.type = "HUMAN"';

  // Iterate through the response pages using page tokens
  let responsePage;
  let pageToken = null;
  do {
    // Request response pages
    responsePage = Chat.Spaces.Members.list(parent, {
      filter: filter,
      pageSize: 10,
      pageToken: pageToken
    });
    // Handle response pages
    if (responsePage.memberships) {
      responsePage.memberships.forEach((membership) => console.log(membership));
    }
    // Update the page token to the next one
    pageToken = responsePage.nextPageToken;
  } while (pageToken);
}

Wenn Sie dieses Beispiel ausführen möchten, ersetzen Sie SPACE_NAME durch die ID aus dem Feld name des Gruppenbereichs. Sie können die ID durch Aufrufen der Methode ListSpaces() oder aus der URL des Gruppenbereichs abrufen.

Die Google Chat API gibt eine Liste der Google-Gruppen-, Nutzer- und Anwendungsmitglieder aus dem angegebenen Bereich zurück.

Mitglieder in einem Gruppenbereich mit App-Authentifizierung auflisten

Wenn Sie Nutzer und die Chat-App in einem Gruppenbereich auflisten möchten, auf den die authentifizierte App Zugriff hat, geben Sie Folgendes in Ihrer Anfrage an:

  • Geben Sie für die App-Authentifizierung den Autorisierungsbereich chat.bot an.
  • Rufen Sie die Methode ListMemberships() auf.
  • Wenn Sie Google-Gruppen auflisten möchten, legen Sie für den Abfrageparameter showGroups den Wert true fest.

Im folgenden Beispiel sind menschliche Mitglieder des Gruppenbereichs (keine Administratoren) aufgeführt, die für die Chat-App sichtbar sind:

Node.js

chat/client-libraries/cloud/list-memberships-app-cred.js
import {createClientWithAppCredentials} from './authentication-utils.js';

// This sample shows how to list memberships with app credential
async function main() {
  // Create a client
  const chatClient = createClientWithAppCredentials();

  // Initialize request argument(s)
  const request = {
    // Replace SPACE_NAME here
    parent: 'spaces/SPACE_NAME',
    // Filter membership by type (HUMAN or BOT) or role (ROLE_MEMBER or
    // ROLE_MANAGER)
    filter: 'member.type = "HUMAN"'
  };

  // Make the request
  const pageResult = chatClient.listMembershipsAsync(request);

  // Handle the response. Iterating over pageResult will yield results and
  // resolve additional pages automatically.
  for await (const response of pageResult) {
    console.log(response);
  }
}

main().catch(console.error);

Python

chat/client-libraries/cloud/list_memberships_app_cred.py
from authentication_utils import create_client_with_app_credentials
from google.apps import chat_v1 as google_chat

# This sample shows how to list memberships with app credential
def list_memberships_app_cred():
    # Create a client
    client = create_client_with_app_credentials()

    # Initialize request argument(s)
    request = google_chat.ListMembershipsRequest(
        # Replace SPACE_NAME here
        parent = 'spaces/SPACE_NAME',
        # Filter membership by type (HUMAN or BOT) or role (ROLE_MEMBER or
        # ROLE_MANAGER)
        filter = 'member.type = "HUMAN"',
        # Number of results that will be returned at once
        page_size = 100
    )

    # Make the request
    page_result = client.list_memberships(request)

    # Handle the response. Iterating over page_result will yield results and
    # resolve additional pages automatically.
    for response in page_result:
        print(response)

list_memberships_app_cred()

Java

chat/client-libraries/cloud/src/main/java/com/google/workspace/api/chat/samples/ListMembershipsAppCred.java
import com.google.chat.v1.ChatServiceClient;
import com.google.chat.v1.ListMembershipsRequest;
import com.google.chat.v1.ListMembershipsResponse;
import com.google.chat.v1.Membership;

// This sample shows how to list memberships with app credential.
public class ListMembershipsAppCred {

  public static void main(String[] args) throws Exception {
    try (ChatServiceClient chatServiceClient =
        AuthenticationUtils.createClientWithAppCredentials()) {
      ListMembershipsRequest.Builder request = ListMembershipsRequest.newBuilder()
        // Replace SPACE_NAME here.
        .setParent("spaces/SPACE_NAME")
        // Filter membership by type (HUMAN or BOT) or role
        // (ROLE_MEMBER or ROLE_MANAGER).
        .setFilter("member.type = \"HUMAN\"")
        // Number of results that will be returned at once.
        .setPageSize(10);

      // Iterate over results and resolve additional pages automatically.
      for (Membership response :
          chatServiceClient.listMemberships(request.build()).iterateAll()) {
        System.out.println(JsonFormat.printer().print(response));
      }
    }
  }
}

Apps Script

Chat/erweiterter-Service/Main.gs
/**
 * This sample shows how to list memberships with app credential
 * 
 * It relies on the OAuth2 scope 'https://www.googleapis.com/auth/chat.bot'
 * used by service accounts.
 */
function listMembershipsAppCred() {
// Initialize request argument(s)
  // TODO(developer): Replace SPACE_NAME here
  const parent = 'spaces/SPACE_NAME';
  // Filter membership by type (HUMAN or BOT) or role (ROLE_MEMBER or
  // ROLE_MANAGER)
  const filter = 'member.type = "HUMAN"';

  // Iterate through the response pages using page tokens
  let responsePage;
  let pageToken = null;
  do {
    // Request response pages
    responsePage = Chat.Spaces.Members.list(parent, {
      filter: filter,
      pageSize: 10,
      pageToken: pageToken
    }, getHeaderWithAppCredentials());
    // Handle response pages
    if (responsePage.memberships) {
      responsePage.memberships.forEach((membership) => console.log(membership));
    }
    // Update the page token to the next one
    pageToken = responsePage.nextPageToken;
  } while (pageToken);
}

Ersetzen Sie zum Ausführen dieses Beispiels SPACE_NAME durch die ID aus dem Feld name des Leerzeichens. Sie können die ID durch Aufrufen der Methode ListSpaces() oder aus der URL des Gruppenbereichs abrufen.

Die Google Chat API gibt eine Liste der menschlichen Mitglieder des Gruppenbereichs (ausgenommen Administratoren des Gruppenbereichs) aus dem angegebenen Gruppenbereich zurück.

Mitglieder als Google Workspace-Administratoren auflisten

Wenn Sie Google Workspace-Administrator sind, können Sie die Methode ListMemberships() aufrufen, um Mitgliedschaften für jeden Gruppenbereich in Ihrer Google Workspace-Organisation aufzulisten. Die Chat API gibt nur Mitgliedschaften für Nutzer (sowohl intern als auch extern) oder Google-Gruppen aus Ihrer Organisation zurück. Mitgliedschaften für Chat-Apps werden daher nicht berücksichtigt.

So rufen Sie diese Methode als Google Workspace-Administrator auf:

  • Rufen Sie die Methode mithilfe der Nutzerauthentifizierung auf und geben Sie einen Autorisierungsbereich an, der das Aufrufen der Methode mithilfe von Administratorberechtigungen unterstützt.
  • Geben Sie in Ihrer Anfrage die folgenden Abfrageparameter an:
    • Setzen Sie useAdminAccess auf true.
    • Wenn nur Nutzer zurückgegeben werden sollen, setzen Sie filter für member.type auf HUMAN.
    • Wenn Sie Nutzer und Gruppen zurückgeben möchten, legen Sie für member.type die Bedingung „nicht gleich“ BOT AND showGroups true fest.filter

Weitere Informationen und Beispiele finden Sie unter Google Chat-Gruppenbereiche als Google Workspace-Administrator verwalten.

Paginierung anpassen oder Liste filtern

Übergeben Sie zum Auflisten der Mitgliedschaften die folgenden Abfrageparameter, um die Paginierung der aufgeführten Mitgliedschaften anzupassen oder diese zu filtern:

  • pageSize: Die maximale Anzahl der Mitgliedschaften, die zurückgegeben werden sollen. Der Dienst gibt möglicherweise weniger als diesen Wert zurück. Wenn nicht angegeben, werden maximal 100 Gruppenbereiche zurückgegeben. Der Höchstwert ist 1.000. Werte über 1.000 werden automatisch in 1.000 geändert.
  • pageToken: Ein Seitentoken, das von einem vorherigen Aufruf von „Verzeichnisse auflisten“ empfangen wurde. Geben Sie dieses Token an, um die nachfolgende Seite abzurufen. Beim Paginieren sollte der Filterwert mit dem Aufruf übereinstimmen, der das Seitentoken bereitgestellt hat. Wenn Sie einen anderen Wert übergeben, kann das zu unerwarteten Ergebnissen führen.
  • filter: Ein Abfragefilter. Erfordert die Nutzerauthentifizierung. Details zu unterstützten Abfragen finden Sie in der Referenz zu ListMembershipsRequest.