AdminDirectory.Members.list通过电子邮件搜索

问题描述 投票:0回答:1

我正在运行一个接收电子邮件地址的功能,然后检查此电子邮件是否已在组中注册,并且只有在未注册的情况下,才将其添加为新成员

通过运行以下功能来完成检查:

  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);

问题是,有时即使运行[[AdminDirectory.Members.insert,CheckIfMemberExist返回false,我也会得到:对directory.members.insert的API调用失败,出现错误:成员已经存在并且脚本中断。我以某种方式怀疑Google识别出一种情况,即用户有另一封与我要注册的电子邮件相关联的电子邮件,但我不知道该如何获取有任何想法吗?谢谢

google-apps-script google-admin-sdk
1个回答
0
投票
[如果您尝试使用其电子邮件将成员添加到组中,它将起作用。但是,如果您以后尝试添加具有与插入的第一封电子邮件关联的任何别名的其他成员,它将无法使用。当您使用别名添加成员,然后尝试使用电子邮件地址添加成员时,也会遇到相同的问题。
© www.soinside.com 2019 - 2024. All rights reserved.