Mit dem erweiterten Cloud Identity Groups-Dienst (CIG) können Sie die CIG API in Apps Script verwenden.
Referenz
Weitere 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 So werden Methodensignaturen ermittelt.
Beispielcode
Die folgenden Hilfsfunktionen verwenden die Version v1 der API.
Gruppe erstellen
Rufen Sie zum Erstellen einer Google-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, mit dem der ursprüngliche Inhaber der Gruppe definiert wird. Sie können die folgenden Werte für diesen Parameter verwenden:
WITH_INITIAL_OWNER
: Die Person, die die Anfrage sendet, wird zum Eigentümer der Gruppe.
EMPTY
: Damit wird eine Gruppe ohne Eigentümer erstellt. Sie können diesen Wert nur verwenden, wenn Sie Google Workspace-Super Admin oder Gruppenadministrator sind. Weitere Informationen zu Google Workspace-Rollen finden Sie unter „Vordefinierte Administratorrollen“.
Im folgenden Beispiel wird gezeigt, wie eine Gruppe so erstellt wird, dass der Nutzer der Eigentümer 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
Rufen Sie groups.search
mit einem Abfragestring auf, um nach einer Google-Gruppe zu suchen. 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 ist eine membership
-Ressource und der name
-String der übergeordneten Ressource erforderlich. Der erste Wert kann durch Aufrufen der Gruppe über die Methode lookup
abgerufen werden.
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);
}
}
Kanalmitgliedschaft von einem Mitglied erhalten
Verwenden Sie die Methode groups.memberships.searchDirectGroups
, um nach den unmittelbaren Eltern eines Mitglieds zu suchen.
Die folgende Hilfsmethode zeigt ein Beispiel für die Iteration durch die 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 in 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. Verwenden Sie die Methode groups.lookup
, um die ID einer einzelnen Gruppe zu ermitteln. 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);
}
}