Google apps script 使用Google Apps脚本API访问其他用户

Google apps script 使用Google Apps脚本API访问其他用户,google-apps-script,gmail-api,Google Apps Script,Gmail Api,我真的很困惑。我想使用Gmail API访问和发送邮件在另一个帐户使用谷歌应用程序脚本。我在高级谷歌服务中启用了Gmail,并在控制台上启用了API。当我使用值“me”时,下面的代码可以工作,但当我为另一个用户尝试时,会出现“Delegation denied”错误。我完全理解,我不能只输入我想要的任何电子邮件地址并期望能够访问它,但我似乎找不到/无法理解列出了实现这一点的步骤的文档 function listLabels() { var response = Gmail.Users.Lab

我真的很困惑。我想使用Gmail API访问和发送邮件在另一个帐户使用谷歌应用程序脚本。我在高级谷歌服务中启用了Gmail,并在控制台上启用了API。当我使用值“me”时,下面的代码可以工作,但当我为另一个用户尝试时,会出现“Delegation denied”错误。我完全理解,我不能只输入我想要的任何电子邮件地址并期望能够访问它,但我似乎找不到/无法理解列出了实现这一点的步骤的文档

function listLabels() {
  var response = Gmail.Users.Labels.list('user@example.com');
  Logger.log("Labels:");
  for (var i = 0; i < response.labels.length; i++) {
     var label = response.labels[i];
     Logger.log("- %s", label.name);
  }
}
函数列表标签(){
var response=Gmail.Users.Labels.list('user@example.com');
Logger.log(“标签:”);
对于(var i=0;i
由于应用程序脚本不支持使用服务帐户,因此无法使用“从应用程序委派”脚本。你需要创建一个oauth2流,并让该用户授权。最重要的是@ZigMandel所说的:除非这是一个谷歌域名或谷歌工作账户(据我所知),否则你不能在gmail上使用服务账户。您需要使用Oauth2。另一方面,如果这是一个google work/edu/gov域,您可以通过域管理控制台注册一个与您的脚本关联的服务帐户来访问域用户资源。@DalmTo它是一个google apps帐户,但我需要它在其他域中工作。换言之,其他用户有一个过滤器设置,可以将特定的电子邮件移动到队列标签,脚本会根据结果选择这些邮件并分配到另一个标签。它将需要在我的邮件中应用相同的标签,以便我可以监视它。为自己做这件事很容易,但为别人做却变得更难。oauth2允许这样做吗?尝试和实现它是一场噩梦吗?这是可能的,但不是一个简单的设置。您将构建一个以用户身份运行的脚本(我假设是一个webapp)。用户必须登录、授权并执行您的业务逻辑。然后可以将凭据保存在脚本属性中。这些凭证将受到保护,不受对脚本没有编辑权限的任何人的影响。使用这些凭据,您可以调用Gmail API来操纵您的帐户。