Gelişmiş Cloud Identity Groups Hizmeti

Gelişmiş Cloud Identity Grupları (CIG) hizmeti, Apps Komut Dosyası'nda CIG API'yi kullanmanıza olanak tanır.

Referans

Bu hizmetle ilgili ayrıntılı bilgi için CIG API'nin referans belgelerine bakın. Apps Komut Dosyası'ndaki tüm gelişmiş hizmetler gibi, gelişmiş CIG hizmeti de herkese açık API ile aynı nesneleri, yöntemleri ve parametreleri kullanır. Daha fazla bilgi için Yöntem imzalarının nasıl belirlendiği başlıklı makaleyi inceleyin.

Örnek Kod

Aşağıdaki yardımcı işlevler, API'nin v1 sürümünü kullanır.

Grup Oluştur

Google Grubu oluşturmak için yeni grup kaynağının bir örneğiyle groups.create çağrısı yapın. Grup örneği, groupKey, parent ve label değerleri cloudidentity.googleapis.com/groups.discussion_forum olarak ayarlanmış bir öğe içermelidir. Grubun ilk sahibini tanımlayan initialGroupConfig parametresini de ayarlamanız gerekir. Bu parametre için aşağıdaki değerleri kullanabilirsiniz:

WITH_INITIAL_OWNER: İsteği gönderen kişiyi grubun sahibi yapar.

EMPTY: Başlangıçta sahibi olmayan bir grup oluşturur. Bu değeri yalnızca Google Workspace süper yöneticisi veya Gruplar yöneticisiyseniz kullanabilirsiniz. Google Workspace rolleri hakkında daha fazla bilgi için önceden oluşturulmuş yönetici rolleri başlıklı makaleyi inceleyin.

Aşağıdaki örnekte, kullanıcının grubun sahibi olacağı şekilde nasıl grup oluşturulacağı gösterilmektedir:

const groups = CloudIdentityGroups.Groups;

function createGroup(groupId, parentId, displayName) {
  const groupKey = { id: groupId };
  const group = {
    parent: "customerId/" + parentId,
    displayName: displayName,
    groupKey: groupKey,
    // Set the label to specify creation of a Google Group.
    labels: { "cloudidentity.googleapis.com/groups.discussion_forum": "" },
  };
  const optionalArgs = { initialGroupConfig: "WITH_INITIAL_OWNER" };

  try {
    const response = groups.create(group, optionalArgs);
    console.log(response);
  } catch (error) {
    console.error(error);
  }
}

Grup arama

Bir Google Grubu'nu aramak için sorgu dizesiyle groups.search işlevini çağırın. Tüm grupları aramak için label cloudidentity.googleapis.com/groups.discussion_forum değerini girin.

const groups = CloudIdentityGroups.Groups;

function searchGroup(customer_id) {
  const search_query = `parent=='customerId/${customer_id}' && 'cloudidentity.googleapis.com/groups.discussion_forum' in labels`;
  const search_group_request = groups.search({ query: search_query });
  console.log(JSON.stringify(search_group_request));
}

Gruba üyelik ekleme

Bir grup oluşturduktan sonra bu grup için üyelikler oluşturabilirsiniz. Bu yöntem için membership kaynağı ve üst öğenin kaynak name dizesi gerekir. Önceki değer, lookup yöntemiyle grup aranarak elde edilebilir.

Aşağıdaki yardımcı yöntem, bir gruba üyelik ekleme örneğini gösterir. expiryDetail, üyeliğin geçerlilik bitiş tarihini ayarlamak için eklenebilen isteğe bağlı bir alandır. preferredMemberKey değeri, üyenin e-posta adresidir.

const groups = CloudIdentityGroups.Groups;

function createMembership(namespace, groupId, memberKey) {
  try {
    // Given a group ID and namespace, retrieve the ID for parent group
    const groupLookupResponse = groups.lookup({
      'groupKey.id': groupId,
      'groupKey.namespace': namespace
    });
    const groupName = groupLookupResponse.name;

    // Create a membership object with a memberKey and a single role of type MEMBER
    const membership = {
      preferredMemberKey: { id: memberKey },
      roles: [
        {
          name: "MEMBER",
          expiryDetail: {
            expireTime: "2025-10-02T15:01:23Z",
          },
        },
      ],
    };

    // Create a membership using the ID for the parent group and a membership object
    const response = groups.Memberships.create(membership, groupName);
    console.log(JSON.stringify(response));
  } catch (e) {
    console.error(e);
  }
}

Üyelerden üyelik alma

Bir üyenin doğrudan üst öğelerini aramak için groups.memberships.searchDirectGroups yöntemini kullanın.

Aşağıdaki yardımcı yöntem, belirli bir üyenin doğrudan üyeliklerinde yineleme yapma örneğini gösterir.

const groups = CloudIdentityGroups.Groups;

 function searchMemberMemberships(memberId, pageSize) {
  try {
    let memberships = [];
    let nextPageToken = '';
    const withinParent = 'groups/-';  // This parameter sets the scope as "all groups"

    do {
      // Get page of memberships
      const queryParams = {
        query: `member_key_id == \'${memberId}\'`,
        page_size: pageSize,
        page_token: nextPageToken,
      };
      const response = groups.Memberships.searchDirectGroups(withinParent, queryParams);
      memberships = memberships.concat(response.memberships);

      // Set up next page
      nextPageToken = response.nextPageToken;
    } while (nextPageToken);

    return memberships;
  } catch(e) {
    console.error(e);
  }
}

Gruptan üyelik alma

Bir grubun üyelerini listelemek için groups.memberships.list yöntemini kullanın.

groupId: Üyelerini listelemek istediğiniz grubun sayısal kimliği. Tek bir grubun kimliğini bulmak için groups.lookup yöntemini kullanın. Bir müşteri veya ad alanı altındaki tüm grup kimliklerini görmek için groups.list yöntemini kullanın.

const groups = CloudIdentityGroups.Groups;

function listGroupMemberships(groupId, pageSize) {
  try {
    let membershipList = [];
    let nextPageToken = '';

    // Get group name
    const groupName = groups.lookup({'groupKey.id': groupId}).name;

    do {
      // Get page of memberships
      const queryParams = {
        pageSize: pageSize,
        pageToken: nextPageToken
      }
      const response = groups.Memberships.list(groupName, queryParams);
      membershipList = membershipList.concat(response.memberships);

      // Set up next page
      nextPageToken = response.nextPageToken;
    } while(nextPageToken);

    return membershipList;
  } catch (error) {
    console.error(error);
  }
}