2015-05-11 27 views
1

Cheers Everyone!Google Groups API - getUsers()您没有权限查看该群组的成员列表:

我有一个谷歌脚本,它通过使用getUsers()函数检查电子邮件地址是否为组的成员。

到目前为止:

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

对于大多数确实是神奇的团体,但是我得到授权错误在有些团体的情况下。从登录

错误消息:

  • “您没有权限查看该组的成员列表:FOO @栏”

任何想法可能是什么问题? 任何事情都非常感谢。 谢谢!

+0

寻求调试帮助的问题(“为什么这个代码不工作?”)必须包含所需的行为,特定的问题或错误以及在问题本身中重现问题所需的最短代码。没有明确问题陈述的问题对其他读者无益。请参阅:如何创建最小,完整和可验证示例。 – DaImTo

回答

1

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

1)让自己组的所有者或管理者或

2)使用管理SDK来检查组成员。 Admin SDK允许任何超级管理员查看组中用户的列表。要了解用户是否是一个组的成员,你将需要检索组,然后通过成员列表迭代,然后比较针对用户的每个成员,你正在寻找:

function isMember(groupKey,userKey){ 
    //groupKey: [email protected] 
    //userKey: [email protected] 

    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