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

用户同时登录双账号时,如何强制ScriptApp.getOAuthToken()使用工作账号?

强制ScriptApp.getOAuthToken()使用工作账号的解决方案

方法1:配置域范围授权(适合企业级Google Workspace插件)

如果你的插件面向icognition.cloud域内用户,可联系域管理员完成以下配置:

  • 创建绑定到Apps Script项目的Google Cloud服务账号
  • 管理员在Google Workspace管理控制台中,为该服务账号授予所需API的域范围权限
  • 脚本中通过服务账号模拟工作账号身份调用API,无需用户手动授权,直接获取对应工作账号的token

方法2:限制脚本访问权限为域内用户

通过部署设置强制用户使用工作账号访问:

  1. 打开Apps Script编辑器,点击右上角「部署」→「管理部署」
  2. 编辑现有部署,将「谁有权访问」设置为「仅限icognition.cloud域内的用户」
  3. 保存后,个人账号无法访问插件,用户必须使用工作账号登录,此时ScriptApp.getOAuthToken()获取的就是工作账号的token

方法3:使用OAuth2库手动指定工作账号

借助OAuth2库自定义授权流程,引导用户选择工作账号:

  1. 在脚本中添加OAuth2库(库ID:1B7FSrk5Zi6L1rSxxTDgDEUsPzlukDsi4KGuTMorsTQHhGBzBkMun4iDF)
  2. 构建授权URL时,通过login_hint参数指定工作账号的邮箱或@icognition.cloud域名,强制引导用户选择工作账号
  3. 授权完成后,存储并使用该账号的token替代ScriptApp.getOAuthToken()

示例代码片段:

function getWorkAccountToken() {
  const oauth2 = OAuth2.createService('work-account')
    .setAuthorizationBaseUrl('https://accounts.google.com/o/oauth2/auth')
    .setTokenUrl('https://accounts.google.com/o/oauth2/token')
    .setClientId('你的客户端ID')
    .setClientSecret('你的客户端密钥')
    .setCallbackFunction('authCallback')
    .setPropertyStore(PropertiesService.getUserProperties())
    .setScope('所需API权限范围')
    // 指定工作账号域名,引导用户选择
    .setParam('login_hint', '@icognition.cloud');

  if (!oauth2.hasAccess()) {
    const authorizationUrl = oauth2.getAuthorizationUrl();
    Logger.log('打开以下URL完成授权后重新运行脚本:%s', authorizationUrl);
    return null;
  }
  return oauth2.getAccessToken();
}

function authCallback(request) {
  const oauth2 = OAuth2.createService('work-account');
  const isAuthorized = oauth2.handleCallback(request);
  return HtmlService.createHtmlOutput(isAuthorized ? '授权成功' : '授权失败');
}

方法4:让用户设置工作账号为浏览器默认账号

引导用户调整浏览器默认账号设置:

  • 点击浏览器右上角Google账号头像,选择「管理你的Google账号」
  • 进入「个人信息」→「账号偏好设置」→「默认账号」,选择icognition.cloud工作账号
  • 后续打开插件时会默认使用工作账号,ScriptApp.getOAuthToken()将自动获取该账号的token

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 23:43:19