Google Workspace员工Gmail签名修改的service account鉴权咨询
问题描述
我正在开发一款Google Sheets插件,需要实现访问域内所有员工账号并修改其Gmail签名的功能。
我找到了两份相关参考方案,但无法完全理解其实现逻辑。现有参考示例代码虽然可以简化开发流程,但我对服务账号及鉴权相关逻辑存在疑问:按照我的理解,现有方案要求每个插件使用者自行生成服务账号凭证,但我希望通过Google App Script自动完成该部分配置,无需用户手动操作。
我对以下两行代码的配置逻辑存在疑惑:
var OAUTH2_SERVICE_ACCOUNT_PRIVATE_KEY = '-----BEGIN PRIVATE KEY-----\n\n-----END PRIVATE KEY-----\n';var OAUTH2_SERVICE_ACCOUNT_CLIENT_EMAIL = 'xxx@yyy.iam.gserviceaccount.com';
我作为Google Workspace超级管理员,清楚更新员工Gmail签名必须依赖全域委派(wide-domain delegation)和服务账号,但目前未找到对应官方文档解答相关疑问,希望能获得相关资料指引、澄清配置疑惑,如有需要可补充更多相关信息。
参考示例代码:
// 以下两个参数包含在创建服务账号及服务账号密钥时下载的.JSON凭证文件中 var OAUTH2_SERVICE_ACCOUNT_PRIVATE_KEY = '-----BEGIN PRIVATE KEY-----\n\n-----END PRIVATE KEY-----\n'; var OAUTH2_SERVICE_ACCOUNT_CLIENT_EMAIL = 'xxx@yyy.iam.gserviceaccount.com'; function getDomainWideDelegationService(serviceName, scope, email) { Logger.log('starting getDomainWideDelegationService for email: ' + email); return OAuth2.createService(serviceName + email) .setTokenUrl('https://accounts.google.com/o/oauth2/token') // 设置私钥和签发方 .setPrivateKey(OAUTH2_SERVICE_ACCOUNT_PRIVATE_KEY) .setIssuer(OAUTH2_SERVICE_ACCOUNT_CLIENT_EMAIL) .setSubject(email) .setPropertyStore(PropertiesService.getScriptProperties()) .setScope(scope); }
内容的提问来源于stack exchange,提问作者Damian
相关产品推荐
相关产品推荐

