【问题标题】:admin-sdk: users/list works, but members/list doesn't?admin-sdk:用户/列表有效,但成员/列表无效?
【发布时间】:2016-05-15 18:45:33
【问题描述】:

在我公司的域中,我可以通过此调用成功搜索用户: https://developers.google.com/admin-sdk/directory/v1/reference/users/list (域:mydomain.com,viewType:domain_public,以及我自己的电子邮件作为服务帐户授权中的 sub=。)

我已经确认,使用网络浏览器,我公司中的任何人都可以通过转到 https://groups.google.com/a/mycompany/forum/#!members/mygroup 查看公司中任何组的成员资格。

似乎遵循(相同的 api,显然在公司范围内开放)我应该能够通过此调用获得组成员: https://developers.google.com/admin-sdk/directory/v1/reference/members/list

但是,即使使用 API Explorer,我也得到:

403 OK
- SHOW HEADERS -
{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "forbidden",
    "message": "Not Authorized to access this resource/api"
   }
  ],
  "code": 403,
  "message": "Not Authorized to access this resource/api"
 }
}

这似乎没有意义...这是需要/可以在组织级别更改的权限吗? (即我的管理员已允许用户/列表,但尚未允许成员/列表?)

如果这是 API 中的某种故意行为……为什么?有没有人找到解决办法? (截屏https://groups.google.com/a/mycompany/forum/#!members/mygroup 可能会起作用,但是当理论上有 API 时,这似乎太疯狂了……)

FWIW - 我正在尝试使用 php 在 linux 机器上运行的服务中执行此操作,但直到我可以让它在 API 资源管理器中工作之前,我不确定这是否相关。我的第一次尝试是获取所有适用于用户/列表的代码,并改为调用成员/列表。失败后,我尝试了 API Explorer,但也失败了。

【问题讨论】:

    标签: php api google-groups google-admin-sdk


    【解决方案1】:

    您可以让管理员为您域中的用户授予“读取”管理员 API 权限。

    Admin Console > Admin Roles > Create new role (eg "All users GroupsAPIRead") > Privileges > Admin API Privileges (not Admin Console API Privileges) > Groups > 勾选“Read”(不要勾选创建、更新或删除)。

    【讨论】:

    • 太好了——我今天就提出这个要求!谢谢彼得!
    【解决方案2】:

    最近添加了 users.list() 的 domain_public 选项,以允许最终用户检索目录的有限视图。目前没有等效的组。要运行 groups.list(),您需要成为有权读取组的委派管理员。

    【讨论】:

    • 是否有一种“最佳”方式来请求将 domain_public 添加到 groups.list() 中? (我们知道是什么导致 domain_public 被添加到 users.list() 中吗?)与此同时,我将不得不尝试通过屏幕抓取来滚动我自己的……这似乎太错误了!
    猜你喜欢
    • 2021-11-12
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 2019-02-08
    • 2017-07-04
    相关资源
    最近更新 更多