You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Workspace插件内判断安装方式及获取域安装用户数?

判断Google Workspace插件安装类型及域用户数量的可行方案

我刚好处理过类似的需求,目前Apps Script确实没有直接返回安装类型的内置方法,但通过以下两种方式可以实现你的需求:

一、区分域安装与个人安装

方法1:利用安装触发事件+管理员权限验证

当管理员为整个域安装插件时,onInstall(e)函数会被触发。我们可以在这个时机检查安装者是否为域管理员,并标记安装类型:

function onInstall(e) {
  // 获取当前安装用户的邮箱
  const userEmail = Session.getActiveUser().getEmail();
  try {
    const user = AdminDirectory.Users.get(userEmail);
    // 如果是域管理员,标记为域级安装
    if (user.isAdmin) {
      PropertiesService.getScriptProperties().setProperty('INSTALL_TYPE', 'DOMAIN');
    } else {
      PropertiesService.getScriptProperties().setProperty('INSTALL_TYPE', 'PERSONAL');
    }
  } catch (err) {
    // 无法获取管理员信息,默认标记为个人安装
    PropertiesService.getScriptProperties().setProperty('INSTALL_TYPE', 'PERSONAL');
  }
  // 调用onOpen完成初始化流程
  onOpen(e);
}

使用这个方法需要先启用Admin Directory API(在Apps编辑器的「资源」→「高级Google服务」里开启),并授权https://www.googleapis.com/auth/admin.directory.user.readonly权限。

方法2:运行时通过域资源访问权限判断

如果错过了安装触发时机,也可以在插件运行时尝试访问域级资源来判断:

function getCurrentInstallType() {
  try {
    // 尝试获取域内任意一个用户,验证是否有域访问权限
    AdminDirectory.Users.list({domain: 'your-domain.com', maxResults: 1});
    return 'DOMAIN';
  } catch (err) {
    // 无权限访问域目录,说明是个人安装
    return 'PERSONAL';
  }
}

二、查询域内用户数量

如果插件是域级安装且已授权Admin Directory API权限,可以通过分页调用API统计域内用户总数:

function getDomainTotalUsers() {
  let totalUsers = 0;
  let pageToken = null;
  
  do {
    const userList = AdminDirectory.Users.list({
      domain: 'your-domain.com',
      maxResults: 500, // 单次请求最大返回500条,API限制
      pageToken: pageToken
    });
    
    if (userList.users) {
      totalUsers += userList.users.length;
    }
    pageToken = userList.nextPageToken;
  } while (pageToken);
  
  return totalUsers;
}

注意:这个功能必须由域管理员授权插件的域范围访问权限,否则普通用户调用会触发权限错误。

重要提醒

  • 确保你的插件在Google Workspace Marketplace中设置为域范围部署,否则管理员安装也只是个人安装类型。
  • 所有涉及Admin Directory的操作都需要在Google Cloud Console中启用对应API,否则会触发权限错误。

内容的提问来源于stack exchange,提问作者Stellan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 18:57:43