Alandaki üyeleri listeleme

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

  • Uygulama kimlik doğrulaması ile üyelikleri listeleme 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ı ile üyelikleri listeleme Kimliği doğrulanmış kullanıcının erişebildiği alanlardaki üyelikleri listeler.
  • Google Workspace yöneticisi olarak, yönetici ayrıcalıkları kullanılarak kullanıcı kimlik doğrulamasıyla üyelikleri listelediğinizde, Google Workspace kuruluşunuzdaki tüm alanlardaki üyelikler listelenir.

Membership kaynağı bir kullanıcının veya Google Chat uygulamasının bir alana davet edilip edilmediğini, alanda bulunup bulunmadığını ya da alanda bulunmadığını gösterir.

Ön koşullar

Node.js

Python

Java

Apps Komut Dosyası

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

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

  • Kullanıcı kimlik doğrulaması ile chat.memberships.readonly veya chat.memberships yetkilendirme kapsamını belirtin.
  • ListMemberships() yöntemini çağırın.
  • Google Grupları'nı listelemek için sorgu parametresini showGroups olarak ayarlayın.true

Aşağıdaki örnekte, kimliği doğrulanmış kullanıcının görebileceği Google Grubu, insan 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 yerine alanın name alanındaki kimliği girin. Kimliği ListSpaces() yöntemini çağırarak veya alanın URL'sinden alabilirsiniz.

Google Chat API, belirtilen alandaki Google Grubu, kullanıcı ve uygulama üyelerinin listesini döndürür.

Uygulama kimlik doğrulaması olan 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ının görebildiği 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ı

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

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

Google Chat API, belirtilen alandaki gerçek kişi olan alan üyelerinin (alan yöneticileri hariç) listesini döndürür.

Google Workspace yöneticisi olarak liste üyeleri

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 hem dahili hem de harici kullanıcılar veya Google Grupları ile ilgili üyelikleri döndürür. Bu nedenle, Chat uygulamaları için üyelikler atlanır.

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

  • Kullanıcı kimlik doğrulamasıyla 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 için filter öğesini member.type için HUMAN ile eşit olacak şekilde ayarlayın.
    • Kullanıcıları ve grupları döndürmek için filter değerini member.type için BOT AND showGroups değerine eşit olmayan true olarak ayarlayın.

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

Sayfalandırmayı özelleştirme veya listeyi filtreleme

Üyelikleri listelemek için aşağıdaki sorgu parametrelerini ileterek listelenen üyeliklerin sayfalandırmasını özelleştirin veya üyelikleri filtreleyin:

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