Mit dem erweiterten Cloud Identity Groups-Dienst (CIG) können Sie die CIG API in Apps Script verwenden.
Referenz
Ausführliche Informationen zu diesem Dienst finden Sie in der Referenzdokumentation für die CIG API. Wie alle erweiterten Dienste in Apps Script verwendet der erweiterte CIG-Dienst dieselben Objekte, Methoden und Parameter wie die öffentliche API. Weitere Informationen finden Sie unter Methodensignaturen.
Beispielcode
Die folgenden Hilfsfunktionen verwenden Version 1 der API.
Gruppe erstellen
Rufen Sie zum Erstellen einer Google Groups-Gruppe groups.create
mit einer Instanz der neuen Gruppenressource auf. Die Gruppeninstanz muss einen groupKey
, einen parent
und ein label
enthalten, das auf cloudidentity.googleapis.com/groups.discussion_forum
festgelegt ist.
Außerdem müssen Sie den Parameter initialGroupConfig
festlegen, der den ursprünglichen Inhaber der Gruppe definiert. Sie können die folgenden Werte für diesen Parameter verwenden:
WITH_INITIAL_OWNER
: Die Person, die die Anfrage sendet, wird zum Inhaber der Gruppe.
EMPTY
: Erstellt eine Gruppe ohne anfängliche Inhaber. Sie können diesen Wert nur verwenden, wenn Sie ein Google Workspace-Super Admin oder ein Gruppenadministrator sind. Weitere Informationen zu Google Workspace-Rollen finden Sie unter „Vordefinierte Administratorrollen“.
Das folgende Beispiel zeigt, wie Sie eine Gruppe erstellen, in der der Nutzer der Inhaber der Gruppe ist:
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);
}
}
Nach einer Gruppe suchen
Für die Suche nach einer Google Groups-Gruppe rufen Sie groups.search
mit einem Abfragestring auf. Wenn Sie nach allen Gruppen suchen möchten, geben Sie label
cloudidentity.googleapis.com/groups.discussion_forum
an.
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));
}
Mitgliedschaft in eine Gruppe aufnehmen
Sobald eine Gruppe vorhanden ist, können Sie Mitgliedschaften für die Gruppe erstellen. Für diese Methode sind eine membership
-Ressource und der name
-String der übergeordneten Ressource erforderlich. Der erste Wert kann abgerufen werden, indem Sie die Gruppe mit der Methode lookup
suchen.
Die folgende Hilfsmethode zeigt ein Beispiel für das Hinzufügen einer Mitgliedschaft zu einer Gruppe.
expiryDetail
ist ein optionales Feld, das hinzugefügt werden kann, um eine Ablauffrist für die Mitgliedschaft festzulegen. Der Wert von preferredMemberKey
ist die E-Mail-Adresse des Mitglieds.
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);
}
}
Mitgliedschaften von Mitgliedern erhalten
Mit der Methode groups.memberships.searchDirectGroups
können Sie nach den direkten Eltern eines Mitglieds suchen.
Die folgende Hilfsmethode zeigt ein Beispiel für das Durchlaufen der direkten Mitgliedschaften eines bestimmten Mitglieds.
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);
}
}
Mitgliedschaften einer Gruppe abrufen
Verwenden Sie die Methode groups.memberships.list
, um die Mitglieder einer Gruppe aufzulisten.
groupId
: Die numerische ID der Gruppe, für die Sie Mitglieder auflisten möchten. Wenn Sie die ID einer einzelnen Gruppe ermitteln möchten, verwenden Sie die Methode groups.lookup
. Wenn Sie alle Gruppen-IDs unter einem Kunden oder Namespace aufrufen möchten, verwenden Sie die Methode 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);
}
}