python - Google Apps 域管理员可以列出用户的消息吗?

标签 python google-apps google-apps-marketplace

我们为 Google Apps Marketplace 创建了一个应用程序。我们希望我们的应用程序检查每个用户每天发送和接收的电子邮件数量。我尝试在 https://developers.google.com/gmail/api/v1/reference/users/messages/list 上测试表单,当用户或管理员输入“me”为userId时,它就起作用了。 ,但是当域管理员键入用户的电子邮件地址时,他会收到一条错误消息:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "forbidden",
    "message": "Delegation denied for admin@<domain>"
   }
  ],
  "code": 403,
  "message": "Delegation denied for admin@<domain>"
 }
}

(<domain>是我测试的域名)。

域管理员是否可以列出除他自己之外的用户的消息?我没有在文档中找到它。

更新:我尝试通过我们的应用程序使用用户的电子邮件地址进行身份验证,然后成功了。但我更愿意使用域管理员的电子邮件地址进行身份验证。

最佳答案

这是可能的。为此,您需要模拟用户,然后对您提到的 API 进行相同的调用。

为了冒充用户代表您执行操作,您必须实现 domain wide delegation权威。

为此,您必须在项目中创建一个服务帐户。然后域管理员必须向您的应用程序授予权限。之后,您可以使用服务帐户来模拟域中的任何用户,包括管理员。

关于python - Google Apps 域管理员可以列出用户的消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33481849/

相关文章:

python - 在python数组中排序日期

javascript - 3个依赖于Javascript的下拉列表

python - 在 Google Apps Marketplace 中获取用户许可 - 错误

google-apps-script - 如何设计 Google Workspace Marketplace Addon 的样式?

python - python 2.7 中的 __add__ 矩阵方法

python - 删除 ManyToMany 字段中引用的对象

google-api - 如何向域的所有用户添加 Google 日历?

google-app-engine - 当我的应用程序通过 Google Apps 运行时,如何通过子域提供应用程序引擎版本?

google-apps-script - 是否可以将 Google Apps Script Web App 发布到 G Suite Marketplace?

python - Pandas - 将直方图桶分配给每一行