Il servizio avanzato Cloud Identity Groups (CIG) ti consente di utilizzare l'API CIG in Apps Script.
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 avanzato CIG utilizza gli stessi oggetti, metodi e parametri dell'API pubblica. Per maggiori informazioni, consulta Come vengono determinate le firme dei metodi.
Codice di esempio
Le seguenti funzioni helper 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
groupKey
, parent
e label
impostati 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 proprietaria del gruppo.
EMPTY
: Crea un gruppo senza proprietari iniziali. Puoi utilizzare questo valore solo se
sei un super amministratore o un amministratore dei gruppi di Google Workspace. Per maggiori informazioni
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);
}
}
Cercare un gruppo
Per cercare un gruppo Google, chiama
groups.search
con una stringa di query. Per cercare tutti i gruppi, fornisci
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));
}
Aggiungere un'iscrizione a un gruppo
Dopo aver creato un gruppo, puoi creare le relative iscrizioni. Questo metodo richiede una risorsa
membership
e la stringa della risorsa padre name
. Il valore precedente può essere ottenuto
cercando il gruppo tramite il metodo
lookup
.
Il seguente metodo helper mostra un esempio di aggiunta di un'iscrizione a un gruppo.
expiryDetail
è un campo facoltativo che può essere aggiunto per impostare una scadenza per
l'iscrizione. 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);
}
}
Ricevere abbonamenti da un membro
Utilizza il metodo groups.memberships.searchDirectGroups
per cercare i genitori diretti di un membro.
Il seguente metodo helper mostra un esempio di iterazione tra le iscrizioni 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);
}
}
Recuperare le iscrizioni da un gruppo
Utilizza il metodo groups.memberships.list
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 metodo
groups.lookup
. Per visualizzare tutti gli ID gruppo in un cliente o uno spazio dei nomi, utilizza il metodo 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);
}
}