Google Groups API - getUsers()您无权查看该组的成员列表:

时间:2015-05-11 23:41:33

标签: google-api google-groups

为每个人欢呼!

我有一个Google脚本,可以使用getUsers()函数检查电子邮件地址是否是组成员。

到目前为止:

  • 我已激活“管理SDK目录服务”
  • 我有管理员权限

对于大多数群体而言,这是神奇的,但是如果某些群组出现了授权错误。

来自日志的错误消息:

  • “您无权查看该组的成员列表:foo @ bar”

知道可能是什么问题吗? 任何事都非常感激。 谢谢!

1 个答案:

答案 0 :(得分:2)

问题是GroupsApp服务使用GROUP的权限来确定您是否可以查看成员列表。组的默认设置是限制对组的所有者和管理员的此访问权限。所以你有两个选择:

1)让自己成为小组的所有者或经理或

2)使用Admin SDK检查组成员身份。 Admin SDK允许任何超级管理员查看组中的用户列表。要确定用户是否是组的成员,您需要检索该组,然后遍历成员列表,然后将每个成员与您要查找的用户进行比较:

 function isMember(groupKey,userKey){
    //groupKey: testGroup@yourdomain.com
    //userKey: userEmail@yourdomain.com 

    var memberList = [];

    //Get the members list from the group
    var response = AdminDirectory.Members.list(groupKey);
    memberList = memberList.concat(response.members);
    while (response.nextPageToken){
      response = AdminDirectory.Members.list(groupKey,{pageToken: response.nextPageToken});
      memberList = memberList.concat(response.members);
    }

    if (memberList.length > 1){

      for (var x in memberList){
        if (memberList[x].email == userKey){return true;}
     }
   }
 }

更多信息Here