【问题标题】:Google Apps Script to retrieve other users' Gmail labels用于检索其他用户的 Gmail 标签的 Google Apps 脚本
【发布时间】:2017-11-01 19:00:44
【问题描述】:

作为超级管理员,我尝试使用来自此链接的以下代码列出测试用户的标签,但没有成功:https://developers.google.com/apps-script/advanced/gmail

function listLabelInfo() {
  var response =
    Gmail.Users.Labels.list('testuser@domain.com');
  for (var i = 0; i < response.labels.length; i++) {
    var label = response.labels[i];
    Logger.log(JSON.stringify(label));
  }
}

我得到的错误是Delegation denied for myaccount@domain.com (line 2, file "Code")

根据页面上的说明,我执行了以下操作:

  1. 通过转到 资源 > 高级 Google 开启 Gmail API 服务......
  2. 通过转到 资源 > 云平台,从该项目的 API 控制台启用 Gmail API 项目,然后点击我的项目名称 - 项目ID-0123456789012345678
  3. 创建了一个服务帐户并选中已启用 G 复选框 套件域范围的委派 在域的 Manage API Client Access 控制台上,针对在步骤#中创建的 Service AccountClient ID 输入范围 https://www.googleapis.com/auth/gmail.labels 3 以上。

我仍然遇到同样的错误。如果我使用'me 而不是'testuser@domain.com',它会显示我的所有标签。

我在这里错过了什么?

非常感谢任何帮助。

【问题讨论】:

  • 您使用的是实际的@gmail.com 帐户还是确切的testuser@domain.com
  • 'testuser@domain.com' 是一个虚拟帐户。我使用了我公司 Google Apps 电子邮件域的实际测试帐户。我看到了一些使用某些脚本将客户端 ID、客户端密码和范围添加到项目属性的示例,但未能成功。

标签: google-apps-script google-cloud-platform admin google-apps gmail-api


【解决方案1】:

您不能通过 Apps 脚本模拟用户。您不能在应用程序脚本中使用服务帐户。该脚本始终以您的身份运行,而不是服务帐户。

当您创建服务帐户并启用域范围委派时,您必须使用库客户端(java、php、python 等)中的服务帐户。

干杯

【讨论】:

  • 请详细说明我的错误之处。该脚本要么在访问脚本的用户下运行,要么在编写它的人下运行。但它不能由超级管理员运行并让超级管理员冒充某人。您可以做的是在应用程序脚本中设置 Oauth2,但这只会为您提供令牌,您将不得不使用 HTTP 请求,而不是应用程序脚本中的库
  • 嗯!冒充是不可能的。知道了。我以为您说过 Apps Script 不可能。我删除了我的评论。我的理解是我可以使用 Gmail 服务 (developers.google.com/apps-script/reference/gmail) 访问用户帐户,甚至可以删除用户电子邮件线程。作为管理员,我需要这样做,特别是当带有恶意附件/链接的电子邮件被发送到用户的邮箱时。你有什么我可以遵循的指导方针吗? OAuth2 客户端 ID 是在 API 控制台中为脚本创建的。服务帐户还创建了一个 OAuth2 客户端 ID。
【解决方案2】:

如果您不必使用应用脚本自行解决此问题。每个 GSuite 管理员都有一个“必备”工具,用于管理与用户有关的任何事情。 该工具名为 GAM,这里是 Github repo URL:https://github.com/jay0lee/GAM/wiki

GAM 基本上是一个命令行工具,允许管理员管理其 G Suite 帐户的许多方面,包括群组、日历等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-26
    • 2018-09-17
    • 2019-06-06
    • 1970-01-01
    相关资源
    最近更新 更多