Google管理员SDK目录API:将群组添加为角色" OWNER"得到错误

时间:2015-05-20 20:30:38

标签: google-api google-admin-sdk google-directory-api

尝试使用新的Google Admin SDK进行某些群组创建,并为这些群组添加/删除成员。这实际上只是更新了我之前使用旧配置API的一些代码。

我尝试使用OWNER的角色作为群组成员添加群组。我收到了Google的错误消息。如果我尝试将一个组添加为角色为MEMBER的成员,那很好。只有角色OWNER才会返回错误。这是一个例子:

POST https://www.googleapis.com/admin/directory/v1/groups/mygroup/members

{
 "email": "myGroupToAddAsMember@mydomain.com",
 "role": "OWNER"
}

我收到了Google的以下回复:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalid",
    "message": "Invalid Input: memberKey"
   }
  ],
  "code": 400,
  "message": "Invalid Input: memberKey"
 }
}

我还尝试将该群组添加为MEMBER,然后更新成员资格并将角色更改为OWNER。这会得到同样的错误。

我可以进入管理员界面并将会员资格更改为所有者,因此系统显然可以使用它。我究竟做错了什么?谢谢你的帮助。

编辑:这似乎是Google的错误跟踪中的一个已知问题(Issue 3791: Unable to insert group owner using Directory API if the owner is group as well),尽管还没有解决方案。我还没有能够确定任何可编程的解决方法。任何人吗?

2 个答案:

答案 0 :(得分:0)

我暂时在Google支持中记录了此案例。这种行为实际上成了我们注意到的最新版GADS的问题 - 因为它现在使用了Directory API。

基本上,这是预期的行为。 Google不希望群组拥有群组。以前,Provisioning API否决了这个,还有另一个错误,它还允许您通过UI手动添加组作为组的所有者(不确定是否已修复)。

tl; dr这是预期的行为,Google不打算最后一次改变它。

答案 1 :(得分:0)

我也支持了一张票。这对我们来说是一个主要问题,因为我们使用群组作为所有者为群组配置动态安全性(阻止成员发布但允许所有员工发布到群组中)。

但我怀疑这是Google的产品组没有互相交谈的情况。例如,管理控制台仍然支持它,并且API文档对此发生了示例响应:https://developers.google.com/admin-sdk/directory/v1/guides/manage-group-members#json-response_2

我们目前的工作是:

  1. 为每个组添加一个成员,并将所需的组作为所有者名称(例如all_staff_temp)
  2. 将该成员设为该组的所有者
  3. 在控制台中创建一个具有相同名称的组。该组现在是该组的所有者
  4. 我们每天晚上批量执行此操作,首先删除我们的临时组,删除其所有成员资格,然后重新添加,然后再次创建组。这真的很酷,但它确实有效 - 并且表明背部确实支持团体作为所有者。