我目前正在编写一个外接程序来管理Google组,它使用Admin目录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‘仅仅是因为)。
但是,当我使用“插入”方法更新组成员列表时,它需要一个电子邮件地址(它指的是“成员键”,但我知道这必须是一个电子邮件地址)。
它不会接受像*@domain.com这样的虚拟地址(它返回一个错误,这个特定地址存在,所以我在后台使用它),如果我使用一个现有地址并试图将'type‘从'User’改写到'Customer‘,试图将一个现有成员转换成’所有用户‘值,这是行不通的(我怀疑'type’字段不允许'Customer‘作为可写字段,只有一个可读字段)。
我的问题是:似乎没有一种方法可以“将域中的所有用户”整齐地添加到一个组中,而无需遍历域并逐个添加所有成员。这个方法存在吗?我刚刚错过了?或者,是否有一种更整洁的方法可以将所有成员添加到组中,而无需遍历域中的所有成员并将它们一个一个地添加到组中?
发布于 2015-01-10 18:04:48
即使返回到供应API日,也不存在API方法。对于这类组来说,组设置中没有什么不同,它似乎是不受支持的Member Resource。试图修改现有成员以成为type: 'CUSTOMER'的尝试也失败了。
但是,您可以在中设置一个组作为您的“所有成员”,然后使用该组的地址作为代理成员。也就是说,它是一个传播的所有成员特性。这是一个解决办法,而不是一个直接的答案,但正如我上面所说的,真正的答案是“否”。
https://stackoverflow.com/questions/27876613
复制相似问题