Alandaki üyeleri listeleme

Bu kılavuzda, bir alandaki üyeleri, sayfalara ayrılmış ve filtrelenebilir bir alandaki üyelik listesi olarak listelemek için Google Chat API'nin Membership kaynağında list() yönteminin nasıl kullanılacağı açıklanmaktadır.

  • Uygulama kimlik doğrulamasıyla üyelikleri listelemek, Chat uygulamasının erişebildiği alanlardaki üyelikleri listeler ancak kendi üyeliği de dahil olmak üzere Chat uygulaması üyeliklerini hariç tutar.
  • Kullanıcı kimlik doğrulamasıyla giriş yapıldığında, kimliği doğrulanmış kullanıcının erişebildiği alanlardaki üyelikler listelenir.
  • Yönetici ayrıcalıklarını kullanarak kullanıcı kimlik doğrulaması yapan bir Google Workspace yöneticisi olarak üyelikleri listelemek, Google Workspace kuruluşunuzdaki tüm alanlarda üyelikleri listeler.

Membership kaynağı, gerçek kullanıcıların veya Google Chat uygulamalarının bir alana davet edilip edilmediğini, alanda yer alıp almadığını ya da alanda bulunmadığını gösterir.

Ön koşullar

Node.js

Python

Java

Apps Komut Dosyası

Kullanıcı kimlik doğrulaması ile bir alandaki üyeleri listeleme

Kimliği doğrulanmış kullanıcının erişebildiği bir alandaki kullanıcıları, Google Gruplar'ı ve Chat uygulamasını listelemek için isteğinizde aşağıdakileri iletin:

Aşağıdaki örnekte, kimliği doğrulanmış kullanıcının görebildiği Google grubu, gerçek kullanıcı ve uygulama üyeleri listelenmektedir.

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 Komut Dosyası

chat/advanced-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);
}

Bu örneği çalıştırmak için SPACE_NAME değerini alanın name alanındaki kimlikle değiştirin. Kimliği, ListSpaces() yöntemini çağırarak veya alanın URL'sinden alabilirsiniz.

Google Chat API, belirtilen alandaki Google Grubu, gerçek kişiler ve uygulama üyelerinin bir listesini döndürür.

Uygulama kimlik doğrulamasıyla bir alandaki üyeleri listeleme

Kimliği doğrulanmış uygulamanın erişebildiği bir alandaki kullanıcıları ve Chat uygulamasını listelemek için isteğinizde aşağıdakileri iletin:

Aşağıdaki örnekte, Chat uygulamasında görünür olan gerçek kişi olan alan üyeleri (alan yöneticileri değil) listelenmiştir:

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 Komut Dosyası

sohbet/gelişmiş-hizmet/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);
}

Bu örneği çalıştırmak için SPACE_NAME alanını alanın name alanındaki kimlikle değiştirin. Kimliği, ListSpaces() yöntemini çağırarak veya alanın URL'sinden alabilirsiniz.

Google Chat API, belirtilen alandaki insan alan üyelerinin (alan yöneticileri hariç) bir listesini döndürür.

Google Workspace yöneticisi olarak üyeleri listeleme

Google Workspace yöneticisiyseniz Google Workspace kuruluşunuzdaki herhangi bir alanın üyeliklerini listelemek için ListMemberships() yöntemini çağırabilirsiniz. Chat API yalnızca kuruluşunuzdaki kullanıcılar (hem dahili hem de harici) veya Google Grupları ile ilgili üyelikleri döndürür. Bu nedenle, Chat uygulamalarının üyeliklerini atlar.

Bu yöntemi Google Workspace yöneticisi olarak çağırmak için aşağıdakileri yapın:

  • Kullanıcı kimlik doğrulamasını kullanarak yöntemi çağırın ve yöntemin yönetici ayrıcalıkları kullanılarak çağrılmasını destekleyen bir yetkilendirme kapsamı belirtin.
  • İsteğinizde aşağıdaki sorgu parametrelerini belirtin:
    • useAdminAccess değerini true olarak ayarlayın.
    • Yalnızca kullanıcıları döndürmek istiyorsanız member.type için filter değerini HUMAN olarak ayarlayın.
    • Kullanıcıları ve grupları geri döndürmek için member.type için filter değerini, BOT AND showGroups değerine eşit değil: true olarak ayarlayın.

Daha fazla bilgi ve örnek için Google Chat alanlarını Google Workspace yöneticisi olarak yönetme başlıklı makaleyi inceleyin.

Sayfalamayı özelleştirme veya listeyi filtreleme

Üyelikleri listelemek için aşağıdaki sorgu parametrelerini iletin. Bu parametreler, listelenen üyeliklerin sayfalandırmasını özelleştirmenize veya filtrelemenize olanak tanır:

  • pageSize: Döndürülecek maksimum üye sayısı. Hizmet bu değerden daha az sonuç döndürebilir. Belirtilmemişse en fazla 100 boşluk döndürülür. Maksimum değer 1.000'dür. 1.000'den fazla değerler otomatik olarak 1.000 olarak değiştirilir.
  • pageToken: Önceki bir alan liste çağrısından alınan sayfa jetonu. Sonraki sayfayı almak için bu jetonu sağlayın. Sayfalandırma yapılırken filtre değeri, sayfa jetonunu sağlayan çağrıyla eşleşmelidir. Farklı bir değer göndermek beklenmedik sonuçlara yol açabilir.
  • filter: Sorgu filtresi. Kullanıcı kimlik doğrulaması gerektirir. Desteklenen sorgu ayrıntıları için ListMembershipsRequest referansına bakın.