2

我目前正在编写一个插件来管理 Google 群组,它使用Admin SDK Directory API来循环和检索所有群组成员并进行更改等。

我发现一个奇怪的问题是,当“域的所有成员”被添加到组时,没有提供任何成员电子邮件。例如,如果我检索组的所有成员,每个成员将按以下格式返回:

  {
   "kind": "admin#directory#member",
   "etag": "\"ABCDEFGHIJKLMNOPQRSTUV123456789\"",
   "id": "123455678910",
   "email": "email@myDomain.com",
   "role": "MEMBER",
   "type": "USER"
  },

但是,如果您已将域中的所有用户添加到组中,则当您检索此“成员”时,它会以以下格式返回:

  {
   "kind": "admin#directory#member",
   "etag": "\"ABCDEFGHIJKLMNOPQRSTUV123456789\"",
   "id": "123455678910",
   "role": "MEMBER",
   "type": "CUSTOMER"
  },

这对于检索来说很好,因为我可以通过“类型”始终是“客户”来识别它是“域中的所有用户”,然后我只需给它一个任意电子邮件地址以显示在我的界面中(我正在使用*@domain.com' 只是因为)。

但是,当我使用“插入”方法更新群组成员列表时,它需要一个电子邮件地址(它指的是“memberkey”,但我知道这必须是一个电子邮件地址)。

它不接受诸如 *@domain.com 之类的虚拟地址(它返回一个错误,表明该特定地址存在,所以我猜它正在后台使用),如果我使用现有地址并尝试覆盖“类型” '从'用户'到'客户'试图将现有成员转换为'所有用户'值,这不起作用(我怀疑'类型'字段不允许'客户'作为可写字段,只有一个可读的)。

我的问题:似乎没有一种方法可以将“域中的所有用户”整齐地添加到一个组中,而不需要遍历域并逐个添加所有成员。这种方法是否存在而我只是错过了它?或者有没有一种更简洁的方法可以将所有成员添加到组中,而无需遍历域中的所有成员并将它们一个一个添加到组中?

4

1 回答 1

2

即使回到供应 API 时代,也不存在用于此的 API 方法。对于这种类型的组,组设置中没有什么不同,它似乎是不受支持的Member Resource。试图将现有成员修改为type: 'CUSTOMER'也失败。

但是,您可以在管理面板 UI 中将单个组设置为您的“所有成员”,然后将该组的地址用作代理成员。即它是一个传播的所有成员特征。这是一种解决方法,而不是直接答案,但正如我在上面所说的那样,真正的答案是“否”。

于 2015-01-10T18:04:48.527 回答