首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AdminDirectory.Members.list电子邮件搜索

AdminDirectory.Members.list电子邮件搜索
EN

Stack Overflow用户
提问于 2019-12-14 12:37:49
回答 1查看 329关注 0票数 0

我运行一个接收电子邮件地址的函数,然后检查这封电子邮件是否在组中注册,并且只有在没有注册时,才将它作为新成员添加。

检查是通过运行以下函数来完成的:

代码语言:javascript
复制
  function CheckIfMemberExist(email)
  {
  var MemberExist = false;
  var pageToken;
  var page;
  var groupEmail = 'MyGroupEmail';
  var groupDomainName = 'MyGroupDomain';

  do {
      page = AdminDirectory.Members.list(groupEmail,{
      domain: groupDomainName,
      orderBy: 'Email',
      maxResults: 100,
      pageToken: pageToken
      });
    var members = page.members;
    if (members) 
    {
      for (var i = 0; i < members.length; i++)
      {
        var memberEmail = members[i].email;
        if(memberEmail.toLowerCase() == email.toLowerCase())
          MemberExist = true;
      }
    } 
    pageToken = page.nextPageToken;
  } while (pageToken);
  return MemberExist;
}

然后,只有当函数返回MemberExist = false时,我才调用:

AdminDirectory.Members.insert(NewMember,groupEmail);

问题是,即使CheckIfMemberExist返回false,但当我运行AdminDirectory.Members.insert,时,会得到:对directory.members.insert的API调用失败了:成员已经存在,脚本中断。我怀疑google识别出一种情况,即用户有另一封与我试图注册的邮件相关的邮件,但我不知道如何处理这个问题。谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-12-16 11:08:06

如果你试图通过他们的电子邮件将一个成员添加到这个组中,它会工作的。但是,如果您稍后尝试添加与插入的第一封电子邮件相关的别名的另一个成员,它将无法工作。当您使用别名添加成员,然后尝试使用电子邮件地址添加成员时,也会出现同样的问题。

解决问题的一个方法是使用G Suite Admin中的Members:list,然后列表中的每个成员都使用Users:get

Users:get将返回一个表示User resource的列表,在该列表中您还将找到与该用户相关的所有电子邮件,包括别名。之后,你可以简单地检查一下这些电子邮件是否已经在你的组里了。这样,您就可以避免当前遇到的问题。

此外,我建议你看看这些链接,因为它们可能有帮助。

  1. G套件管理帮助-添加新成员的问题
  2. G套件管理SDK -插入成员
  3. G Suite Admin SDK -上市成员
  4. Getting -获取用户
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59335170

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档