Google群组getUsers()不会返回所有成员

时间:2014-09-28 18:03:37

标签: google-apps-script google-groups google-groups-api

我很困惑,但作为新的Google Apps用户,我可能会做错事。

  • 我在此域名上创建了“mydomain.tld”域名和“mygroup”google论坛。

  • 此论坛包含的电子邮件地址并不全是@ gmail.com或@ domain.tld。所有都已直接添加(这是学校的学生名单)

  • 我创建了一个电子表格,并在工作表中添加了一个脚本,以检索该组的所有成员。

  • 如果我使用弃用的功能,一切都很好:GroupsManager.getGroup("mygroup@mydomain.tld").getAllMembers();

  • 使用新API时,我只获得了小组成员的一小部分: GroupsApp.getGroupByEmail("mygroup@mydomain.tld").getUsers();

到目前为止,我可以看到我收到了所有gmail.com电子邮件地址以及来自其他域的一些电子邮件。

非常感谢您提前告诉我错误以及如何使用当前API获取该组的所有电子邮件地址。

2 个答案:

答案 0 :(得分:1)

我找到了一种使用以下方法获取组地址的完整列表的方法:

lMembers = AdminDirectory.Members.list(my_group_email).members

这需要在脚本编辑器的Google Advanced Services菜单中授权管理API,并在Google开发者控制台中激活Admin SDK。

如果用户是域的超级管理员,但我还没有设法授权非超级管理员用户使用此功能,那么效果很好。

任何关于在哪里寻找的提示都将受到赞赏。

答案 1 :(得分:0)

这里最可能的答案是,未返回的地址不是真实用户,而是“群组”或非Google用户。

我的理解是,在旧的弃用方法中,'getAllMembers()'会直接列出该组所有成员的电子邮件,但是,'getUsers()'似乎只返回实际的Google帐户,而不仅仅是一个列表所有电邮地址。因此,任何嵌套组都不会返回第二组电子邮件地址(因为它不是真实用户),并且它也不会返回该组中列出的任何非Google帐户的地址(因为Google不会将他们视为“真实用户”。

简单的测试方式=检查未返回的结果是否为群组电子邮件地址和/或非Gmail帐户(如Hotmail地址)。

如果是这种情况,并且您想要对此反馈给Google,则可以向下滚动到groups page的最底部,然后在“连接”下点击“报告问题”。这将打开一个对话框,让您反馈给Google。