我很困惑,但作为一个新的谷歌应用程序用户,我可能会做错事。
-
我在这个域上创建了一个"mydomain.tld"域和一个"mygroup"谷歌组。
-
此组包含的电子邮件地址并非全部为@gmail.com或@domain.tld。所有地址都已直接添加(这是学校的学生名单)
-
我创建了一个电子表格,并在工作表中添加了一个脚本来检索该组的所有成员。
-
如果我使用不推荐使用的函数:
GroupsManager.getGroup("mygroup@mydomain.tld").getAllMembers();
,一切都很好 -
当我使用新的API时,我只得到小组成员的一小部分:
GroupsApp.getGroupByEmail("mygroup@mydomain.tld").getUsers();
据我所见,我得到了所有的gmail.com电子邮件地址,还有一些来自其他域的电子邮件。
非常感谢提前让我知道我错了什么,以及如何使用当前的API获取该组的所有电子邮件地址。
我找到了一种方法,可以使用获取组地址的完整列表
lMembers = AdminDirectory.Members.list(my_group_email).members
这需要在脚本编辑器的Google Advanced Services菜单中授权管理员API,并在Google开发控制台中激活管理员SDK。
如果用户是域的超级管理员,它会很好地工作,但我还没有授权非超级管理员用户使用此功能。
任何关于在哪里寻找的提示都将不胜感激。
这里最有可能的答案是,没有返回的地址不是真正的用户,而是"组"或非谷歌用户。
我的理解是,在旧的弃用方法中,"getAllMembers()"实际上会列出该组所有成员的电子邮件,然而,"getUsers())"似乎只是返回实际的谷歌帐户,而不是所有电子邮件地址的列表。因此,任何嵌套的组都不会返回第二个组的电子邮件地址(因为它不是真正的用户),也不会返回组中列出的任何非谷歌帐户的地址(因为谷歌不认为它们是"真正的用户")。
简单的测试方法=检查未返回的结果是否为组电子邮件地址和/或Hotmail地址等非Gmail帐户。
如果是这种情况,并且你想就此向谷歌提供反馈,你可以向下滚动到群组页面的最底部,点击"连接"下的"报告问题"。这将打开一个对话框,让你反馈给谷歌。