【问题标题】:Google Groups API - getUsers() You do not have permission to view the member list for the group:Google Groups API - getUsers() 您无权查看该组的成员列表:
【发布时间】:2015-07-22 15:34:21
【问题描述】:

大家干杯!

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

到目前为止:

  • 我已激活“Admin SDK Directory Service”
  • 我有管理员权限

对于大多数组来说,这很神奇,但是在某些组的情况下我会遇到授权错误。

来自日志的错误消息:

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

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

【问题讨论】:

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

标签: google-api google-groups


【解决方案1】:

问题在于 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-12
    • 1970-01-01
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-09
    相关资源
    最近更新 更多