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);
}
}