Layanan Cloud Identity Groups (CIG) lanjutan memungkinkan Anda menggunakan CIG API di Apps Script.
Referensi
Untuk mengetahui informasi mendetail tentang layanan ini, lihat dokumentasi referensi untuk CIG API. Seperti semua layanan lanjutan di Apps Script, layanan CIG lanjutan menggunakan objek, metode, dan parameter yang sama dengan API publik. Untuk mengetahui informasi selengkapnya, lihat Cara menentukan tanda tangan metode.
Kode Contoh
Fungsi bantuan berikut menggunakan versi v1 API.
Buat Grup
Untuk membuat Google Grup, panggil
groups.create
dengan instance resource grup baru. Instance grup harus menyertakan
groupKey
, parent
, dan label
yang ditetapkan ke
cloudidentity.googleapis.com/groups.discussion_forum
.
Anda juga perlu menetapkan parameter initialGroupConfig
, yang menentukan
pemilik awal grup. Anda dapat menggunakan nilai berikut untuk parameter ini:
WITH_INITIAL_OWNER
: Membuat orang yang mengirim permintaan menjadi pemilik
grup.
EMPTY
: Membuat grup tanpa pemilik awal. Anda hanya dapat menggunakan nilai ini jika
Anda adalah Admin Grup atau Admin Super Google Workspace. Untuk mengetahui informasi selengkapnya tentang peran Google Workspace, lihat peran administrator bawaan.
Contoh berikut menunjukkan cara membuat grup sehingga pengguna adalah pemilik grup:
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);
}
}
Menelusuri Grup
Untuk menelusuri Grup Google, panggil
groups.search
dengan string kueri. Untuk menelusuri semua grup, berikan
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));
}
Menambahkan Langganan ke Grup
Setelah grup ada, Anda dapat membuat langganan untuk grup tersebut. Metode ini memerlukan
resource membership
dan string name
resource induk. Nilai sebelumnya dapat diperoleh dengan
mencari grup melalui metode
lookup
.
Metode helper berikut menunjukkan contoh penambahan keanggotaan ke grup.
expiryDetail
adalah kolom opsional yang dapat ditambahkan untuk menetapkan masa berlaku keanggotaan. Nilai preferredMemberKey
adalah alamat email anggota.
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);
}
}
Mendapatkan Langganan dari Anggota
Gunakan metode groups.memberships.searchDirectGroups
untuk menelusuri induk langsung anggota.
Metode helper berikut menunjukkan contoh iterasi melalui langganan langsung anggota tertentu.
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);
}
}
Mendapatkan Keanggotaan dari Grup
Gunakan metode groups.memberships.list
untuk mencantumkan anggota grup.
groupId
: ID numerik grup yang anggotanya ingin Anda cantumkan. Untuk
menemukan ID satu grup, gunakan metode
groups.lookup
. Untuk melihat semua ID grup di bagian pelanggan atau namespace, gunakan metode 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);
}
}