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 di Apps Script, il servizio CIG avanzato 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 di supporto utilizzano la versione v1 dell'API.
Crea un gruppo
Per creare un gruppo Google, chiama groups.create
con un'istanza della nuova risorsa gruppo. L'istanza di 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. Per questo parametro puoi utilizzare i seguenti valori:
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 di gruppi di Google Workspace. Per ulteriori informazioni sui ruoli di Google Workspace, consulta i ruoli amministrativi predefiniti.
L'esempio seguente mostra una funzione di supporto per creare un 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: "EMPTY" };
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 il valore 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'appartenenza a un gruppo
Una volta creato un gruppo, puoi creare le relative iscrizioni. Questo metodo richiede una risorsa membership
e la stringa name
della risorsa principale. Il primo valore può essere ottenuto cercando il gruppo tramite il metodo lookup
.
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'abbonamento. 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 di supporto mostra un esempio di iterazione degli abbonamenti diretti 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 per 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);
}
}