如何修改Google Script让群组成员列表显示姓名而非邮箱
解决方法
你出错的核心原因是调用了不存在的user.getUsers()方法——group.getUsers()返回的是单个用户的User对象,这类对象没有getUsers()方法。要获取用户姓名,应该使用User对象自带的getName()方法。
修改后的正确代码
function listGroupMembers() { var group = GroupsApp.getGroupByEmail("example@googlegroups.com"); console.log(group.getEmail() + ':'); var users = group.getUsers(); for (var i = 0; i < users.length; i++) { var user = users[i]; console.log(user.getName()); // 替换为getName()获取用户姓名 } }
可选优化:同时显示姓名和邮箱
如果需要同时查看成员姓名和对应的邮箱地址,可以用下面的写法:
function listGroupMembers() { var group = GroupsApp.getGroupByEmail("example@googlegroups.com"); console.log(group.getEmail() + ':'); var users = group.getUsers(); users.forEach(function(user) { console.log(`${user.getName()} (${user.getEmail()})`); }); }
注意:如果群组包含外部成员(非当前Google Workspace域内用户),getName()可能返回空值或直接显示邮箱地址,这是因为Google无法获取外部用户的姓名信息。
内容的提问来源于stack exchange,提问作者Terik Holley
相关产品推荐
相关产品推荐

