This Google Apps Script will help your add-on determine whether the current logged-in user is on Google Workspace or if they are using the consumer (free) Google Account. Google Workspace accounts have higher email sending limits and have more storage space in Google Drive vis-a-vis free accounts.
const isGoogleWorkspaceUser = () => {
Session.getActiveUser(); // For scope
const api = 'https://www.googleapis.com/oauth2/v2/userinfo';
const response = UrlFetchApp.fetch(api, {
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
},
});
const { name, email, hd } = JSON.parse(response);
return hd
? `${name} is using Google Workspace with the domain ${hd}`
: `${name} is using the free Google account for ${email}`;
};
All authorized Google Workspace users users will have the hd
attribute set to their domain associated with Workspace while this is not available for consumer accounts. One more thing - you’ll only know if a user belongs to Google Workspace domain, it won’t reveal details about the version of Google Workspace that a user is subscribed to.
A user could be part of any Google Workspace edition or may still be using the legacy version of Google Apps, the response would be the same.