Gelişmiş Cloud Identity Groups (CIG) hizmeti, Apps Komut Dosyası'nda CIG API'yi kullanmanıza olanak tanır.
Referans
Bu hizmet hakkında ayrıntılı bilgi için CIG API'nin referans dokümanlarına 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ı nasıl belirlenir? 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
işlevini çağırın. Grup örneğinde cloudidentity.googleapis.com/groups.discussion_forum
olarak ayarlanmış bir groupKey
, parent
ve label
bulunmalıdır. Ayrıca, 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
: İlk sahipleri 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 rollerine bakın.
Aşağıdaki örnekte, grup oluşturmaya yönelik bir yardımcı işlev 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: "EMPTY" };
try {
const response = groups.create(group, optionalArgs);
console.log(response);
} catch (error) {
console.error(error);
}
}
Grup arama
Google grubu aramak için bir sorgu dizesi ile 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 üye ekleme
Grup oluşturduktan sonra grup için üyelikler oluşturabilirsiniz. Bu yöntem için bir membership
kaynağı ve üst öğenin name
kaynağı dizesi gerekir. Önceki değer, lookup
yöntemi aracılığıyla grup arandığında elde edilebilir.
Aşağıdaki yardımcı yöntemde, bir gruba üyelik ekleme örneği gösterilmektedir. expiryDetail
, üyeliğin geçerlilik bitiş tarihini ayarlamak için eklenebilecek 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 birinci derece ebeveynlerini aramak için groups.memberships.searchDirectGroups
yöntemini kullanın.
Aşağıdaki yardımcı yöntemde, belirli bir üyenin doğrudan üyelikleri arasında iterasyon yapma örneği gösterilmektedir.
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);
}
}
Grup Üyeliklerini 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);
}
}