我正在尝试制作一个脚本,该脚本将组的电子邮件作为输入并解析所有成员以将它们添加到 CSV 文档中。
问题是我的一些组包含其他组,所以我必须递归调用我的函数。并且要递归调用它,我需要测试电子邮件地址以了解它是用户还是组。这里的代码:
var USERS = new Array();
var INDEX = 0;
function listAllUsersInGroup(email) {
var temporaryObjectListMember = GroupsManager.getGroup(email).getAllMembers();
for (z=0; z<temporaryObjectListMember.length; z++) {
try {
var group = GroupsManager.getGroup(temporaryObjectListMember[z]);
}
catch (err2){Logger.log(err2)}
if (group != null) { listAllUsersInGroup(group.getId());}
else {
try {
var user = UserManager.getUser(temporaryObjectListMember[z].substring(0,temporaryObjectListMember[z].lastIndexOf('@')));
} catch(err) { Logger.log(err) }
if (user != null) {
USERS[INDEX] = user.getEmail();
INDEX++;
}
}
}
}
我用 main 调用这个函数:
function main() {
var email = "grouptest@domain.com";
listAllUsersInGroup(email);
}
当组包含用户和另一个组时,它会因“序列化继续时出现意外异常”错误而中断。
在这种情况下,try catch 似乎不起作用。
一种解决方案可能是测试电子邮件的类型(用户、组、别名......),但我还没有找到如何做到这一点。
谢谢 Jérémie BECOUSSE