Reputation: 397
Hi i found this example that prints out users givenname in the logger. I would need to modify it to just count the total number of users and store it in a variable. Could that be done?
function listAllUsers() {
var pageToken, page;
do {
page = AdminDirectory.Users.list({
domain: 'example.com',
orderBy: 'givenName',
maxResults: 100,
pageToken: pageToken
});
var users = page.users;
if (users) {
for (var i = 0; i < users.length; i++) {
var user = users[i];
Logger.log('%s (%s)', user.name.fullName, user.primaryEmail);
}
} else {
Logger.log('No users found.');
}
pageToken = page.nextPageToken;
} while (pageToken);
}
Upvotes: 2
Views: 506
Reputation: 3730
You just need to sum up the count of all the users returned in every api call. Here is how you modified code should look like.
Before running this code, you need to enable Admin Directory API available in Resources > Advance Google Services... and Admin SDK API in Google Developer Console. Here is more detail how to enable it.
After running this function in Google Apps Script Editor, Check View > Logs. This code can be run only by a user who has Super Admin Privilege in your Google Apps Account.
function getAppsUsersCount() {
var numUsers = 0;
var pageToken, page;
do {
page = AdminDirectory.Users.list({
customer : 'my_customer',
maxResults: 500,
fields : 'nextPageToken,users/id',
pageToken: pageToken
});
var users = page.users;
if(users){
numUsers += users.length;
}
pageToken = page.nextPageToken;
} while (pageToken);
Logger.log(numUsers);
return numUsers;
}
Upvotes: 1