AdminDirectory.Members.insert返回“会员已存在”

时间:2017-05-10 14:39:51

标签: google-apps-script

我使用AdminDirectory.Members.insert自动将新注册的成员添加到组中。有时,当脚本在新注册上运行时,我会得到“成员已经存在”,但是当我通过组GUI手动添加成员时,我成功了。

function AddNewMember()
{
    var LastEntryMail = "john.dow@gmail.com";
    var NewMember = 
        {
         email: LastEntryMail,
         role: 'MEMBER'
        };
    var MemberExist = false;
    var pageToken, page;
    var groupEmail = 'mygroup@bmydomain';
    var groupDomainName = 'mydomain';
    
    do 
    {
      page = AdminDirectory.Members.list(groupEmail,{
      domain: groupDomainName,
      orderBy: 'Email',
      maxResults: 200,
      pageToken: pageToken
      });
      var GroupMembers = page.members;
      for (var m in GroupMembers) 
      {
        var email = GroupMembers[m].email;
        if(email == LastEntryMail)     
        {
          MemberExist = true;
          break; //stop the for loop
        }
      }
      if(MemberExist == true)
      {
       break; //stop the do loop
      }
      else //new member email was not found in current page members list. go to next page
      {
       pageToken = page.nextPageToken;
      }
    } while (pageToken);
    
    if(MemberExist == false)
    {
      AdminDirectory.Members.insert(NewMember, groupEmail);
    }
  }

当我调试时,我看到该函数输入了MemberExist == false,所以我猜这个检查是肯定的但是它失败了

1 个答案:

答案 0 :(得分:0)

您可以参考此thread。尝试检查受影响的成员,看看他们是否在受影响的帐户上有可能已添加的别名。如果其中一个别名地址先前已添加到该组,则无法使用其他别名将其添加到该组。联系地址所有者,询问他们是否有与该帐户关联的别名电子邮件地址。如果是这样,请在组中搜索这些别名。