accedere all'API CIG in Apps Script.
Il servizio avanzato Cloud Identity Groups (CIG) ti consente di utilizzare l' API CIG in Google Apps Script.
Questo è un servizio avanzato che deve essere abilitato prima dell'uso.
Riferimento
Per informazioni dettagliate su questo servizio, consulta la documentazione di riferimento per l'API CIG. Come tutti i servizi avanzati in Apps Script, il servizio CIG avanzato utilizza gli stessi oggetti, metodi e parametri dell'API pubblica. Per saperne di più, consulta Come vengono determinate le firme dei metodi.
Codice di esempio
Le seguenti funzioni di assistenza utilizzano la versione v1 dell'API.
Crea un gruppo
Per creare un Gruppo Google, chiama
groups.create
con un'istanza della nuova risorsa del gruppo. L'istanza del gruppo deve includere un groupKey, un parent e un label impostato su cloudidentity.googleapis.com/groups.discussion_forum.
Devi anche impostare il parametro initialGroupConfig, che definisce il proprietario iniziale del gruppo. Puoi utilizzare i seguenti valori per questo parametro:
WITH_INITIAL_OWNER: rende la persona che invia la richiesta il proprietario del gruppo.
EMPTY: crea un gruppo senza proprietari iniziali. Puoi utilizzare questo valore solo se sei un super amministratore di Google Workspace o un amministratore di Gruppi Google. Per saperne di più sui ruoli di Google Workspace, consulta Ruoli amministrativi predefiniti.
L'esempio seguente mostra come creare un gruppo in modo che l'utente sia il proprietario del gruppo:
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);
}
}
Cerca un gruppo
Per cercare un Gruppo Google, chiama
groups.search
con una stringa di query. Per cercare tutti i gruppi, fornisci il
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));
}
Aggiungi un'appartenenza a un gruppo
Dopo aver creato un gruppo, puoi creare le appartenenze. Questo metodo richiede una
membership risorsa
e la stringa name della risorsa padre. Il primo valore può essere ottenuto
cercando il gruppo tramite il lookup
metodo.
Il seguente metodo di assistenza mostra un esempio di aggiunta di un'appartenenza a un gruppo.
expiryDetail è un campo facoltativo che può essere aggiunto per impostare una scadenza per l'appartenenza. Il valore di preferredMemberKey è l'indirizzo email del membro.
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);
}
}
Recupera le appartenenze da un membro
Utilizza il groups.memberships.searchDirectGroups
metodo per cercare i genitori immediati di un membro.
Il seguente metodo di assistenza mostra un esempio di iterazione tra le appartenenze dirette di un determinato membro.
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);
}
}
Recupera le appartenenze da un gruppo
Utilizza il groups.memberships.list
metodo per elencare i membri di un gruppo.
groupId: l'ID numerico del gruppo di cui vuoi elencare i membri. Per
trovare l'ID di un singolo gruppo, utilizza il groups.lookup
metodo. Per visualizzare tutti gli ID gruppo di un cliente o di uno spazio dei nomi, utilizza il groups.list
metodo.
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);
}
}