【发布时间】: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")。
根据页面上的说明,我执行了以下操作:
- 通过转到 资源 > 高级 Google 开启 Gmail API 服务......
- 通过转到 资源 > 云平台,从该项目的 API 控制台启用 Gmail API 项目,然后点击我的项目名称 - 项目ID-0123456789012345678
- 创建了一个服务帐户并选中已启用 G 复选框
套件域范围的委派
在域的 Manage API Client Access 控制台上,针对在步骤#中创建的 Service Account 的 Client ID 输入范围
https://www.googleapis.com/auth/gmail.labels3 以上。
我仍然遇到同样的错误。如果我使用'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