سرویس پیشرفته Cloud Identity Groups (CIG) به شما امکان می دهد از CIG API در Apps Script استفاده کنید.
مرجع
برای اطلاعات دقیق در مورد این سرویس، به مستندات مرجع برای CIG API مراجعه کنید. مانند همه سرویسهای پیشرفته در Apps Script، سرویس پیشرفته CIG از همان اشیا، روشها و پارامترهای API عمومی استفاده میکند. برای اطلاعات بیشتر، نحوه تعیین امضای روش را ببینید.
کد نمونه
توابع کمکی زیر از نسخه v1 API استفاده می کنند.
یک گروه ایجاد کنید
برای ایجاد یک گروه Google، با یک نمونه از منبع گروه جدید groups.create
تماس بگیرید. نمونه گروه باید مجموعهای از groupKey
، parent
، و label
روی cloudidentity.googleapis.com/groups.discussion_forum
داشته باشد. همچنین باید پارامتر initialGroupConfig
را تنظیم کنید که مالک اولیه گروه را مشخص می کند. برای این پارامتر می توانید از مقادیر زیر استفاده کنید:
WITH_INITIAL_OWNER
: شخصی که درخواست را ارسال می کند مالک گروه می کند.
EMPTY
: گروهی را بدون مالک اولیه ایجاد می کند. فقط در صورتی میتوانید از این مقدار استفاده کنید که سرپرست Google Workspace Super Admin یا سرپرست گروهها باشید. برای اطلاعات بیشتر درباره نقشهای Google Workspace، به نقشهای از پیش ساخته شده سرپرست مراجعه کنید.
مثال زیر نحوه ایجاد گروهی را نشان می دهد که کاربر مالک گروه باشد:
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);
}
}
جستجو برای یک گروه
برای جستجوی یک گروه Google، با یک رشته جستجو با groups.search
تماس بگیرید. برای جستجوی همه گروهها، label
cloudidentity.googleapis.com/groups.discussion_forum
را ارائه کنید.
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));
}
عضویت را به یک گروه اضافه کنید
پس از وجود یک گروه، می توانید برای آن عضویت ایجاد کنید. این روش به یک منبع membership
و رشته name
منبع والدین نیاز دارد. مقدار قبلی را می توان با جستجوی گروه از طریق روش lookup
به دست آورد.
روش کمکی زیر نمونه ای از افزودن عضویت به یک گروه را نشان می دهد. expiryDetail
یک فیلد اختیاری است که می تواند برای تعیین انقضای عضویت اضافه شود. مقدار preferredMemberKey
آدرس ایمیل اعضا است.
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);
}
}
دریافت عضویت از اعضا
از روش groups.memberships.searchDirectGroups
برای جستجوی والدین فوری یک عضو استفاده کنید.
روش کمکی زیر نمونه ای از تکرار از طریق عضویت مستقیم یک عضو مشخص را نشان می دهد.
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);
}
}
دریافت عضویت از یک گروه
برای فهرست کردن اعضای یک گروه از روش groups.memberships.list
استفاده کنید.
groupId
: شناسه عددی گروهی که می خواهید اعضای آن را لیست کنید. برای پیدا کردن شناسه یک گروه، از روش groups.lookup
استفاده کنید. برای مشاهده همه شناسههای گروه در زیر یک مشتری یا فضای نام، از روش groups.list
استفاده کنید.
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);
}
}