Google apps script 对directory.members.insert的API调用失败,错误为:未找到资源:groupKey

Google apps script 对directory.members.insert的API调用失败,错误为:未找到资源:groupKey,google-apps-script,google-sheets,google-groups,Google Apps Script,Google Sheets,Google Groups,我正在为Google Sheets编写一个脚本,使用数据中的电子邮件将成员添加到特定的Google组。Google组似乎已找到,并且Google组的电子邮件/groupKey已正确返回。会话(me)中的currentUser是组(所有者)的成员。我已经启用了管理目录API。在一个测试中,我甚至调用了group.getUsers(),组中的所有成员都被正确返回。日志记录中的所有值均符合预期 为什么插入的调用仍然失败?哪些成员未添加到google组 我已经包括了代码和日志 代码 function a

我正在为Google Sheets编写一个脚本,使用数据中的电子邮件将成员添加到特定的Google组。Google组似乎已找到,并且Google组的电子邮件/groupKey已正确返回。会话(me)中的
currentUser
是组(所有者)的成员。我已经启用了管理目录API。在一个测试中,我甚至调用了
group.getUsers()
,组中的所有成员都被正确返回。日志记录中的所有值均符合预期

为什么插入的调用仍然失败?哪些成员未添加到google组

我已经包括了代码和日志

代码

function addMembersFromSheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("MySheet");
  var emails = sheet.getRange(2,3,sheet.getLastRow()-1,1).getValues();
  Logger.log(emails);
  
  var currentUser = Session.getActiveUser();
  Logger.log(currentUser);
 
  var group = GroupsApp.getGroupByEmail("<mygroup>@googlegroups.com");
    
  if (group.hasUser(currentUser)) {
    Logger.log("You are a member of this group. group is: ");
    Logger.log(group.getEmail()); //correctly finds the group
  
  }
  else {
    Logger.log("You are not a member of this group.");
  }

  for(i = 0; i < emails.length; i++) {
    try {
      addMember(emails[i][0], group);
    }
    catch(e) {
      console.error(e);
      Logger.log(e);
      continue;
    }   
  }
}

function addMember(email, group) {
  
  var hasMember = group.hasUser(email);
  Logger.log(hasMember);
  Utilities.sleep(1000);
  
  if(!hasMember) {
    var newMember = {email: email, 
                     role: "MEMBER",
                     delivery_settings: "NONE"};
    Logger.log(newMember);
    Logger.log(group.getEmail())
    AdminDirectory.Members.insert(newMember, group.getEmail());
  }
}
函数addMembersFromSheet(){
var sheet=SpreadsheetApp.getActiveSpreadsheet().getSheetByName(“MySheet”);
var emails=sheet.getRange(2,3,sheet.getLastRow()-1,1).getValues();
Logger.log(电子邮件);
var currentUser=Session.getActiveUser();
Logger.log(当前用户);
var group=GroupsApp.getGroupByEmail(“@googlegroups.com”);
if(组hasUser(当前用户)){
Logger.log(“您是此组的成员。组为:”);
Logger.log(group.getEmail());//正确查找组
}
否则{
log(“您不是此组的成员。”);
}
对于(i=0;i
日志输出(对私有详细信息进行了一些更改):

2020年7月26日下午3:22:09信息[[@gmail.com]]
2020年7月26日下午3:22:09 Info@gmail.com
2020年7月26日下午3:22:10信息您是此群的成员。小组成员为:
2020年7月26日下午3:22:10 Info@googlegroups.com
2020年7月26日下午3:22:10信息错误
2020年7月26日下午3:22:11信息{delivery_settings=NONE,role=MEMBER,email=@gmail.com}
2020年7月26日下午3:22:11 Info@googlegroups.com
2020年7月26日下午3:22:11错误{[GoogleJsonResponseException:API调用directory.members.insert失败,错误为:未找到资源:groupKey]
细节:
{代码:404,
消息:“未找到资源:groupKey”,
错误:[[Object]]},
名称:'GoogleJsonResponseException'}
2020年7月26日下午3:22:11信息Google JSONResponseException:对directory.members.insert的API调用失败,错误为:未找到资源:groupKey
您正在检索一组消费者帐户,并尝试在其上执行GSuite管理员的方法
  • 从你的组名(以
    googlegroups.com
    结尾)我可以假设你有一个消费者帐户(免费Gmail帐户)
  • 但是,
    AdminDirectory
    类的方法仅对GSsuite帐户的管理员可用。文件规定:
此API为G套件域的管理员(包括经销商)提供 在中管理设备、组、用户和其他实体的能力 他们的领域

  • 因此,不幸的是,对于消费者帐户,您不允许使用
    AdminDirectory
    以编程方式插入用户
  • 允许您使用
    GroupsApp
    ,但此服务没有插入用户的方法
您正在检索一组消费者帐户,并尝试在其上执行GSuite管理员的方法
  • 从你的组名(以
    googlegroups.com
    结尾)我可以假设你有一个消费者帐户(免费Gmail帐户)
  • 但是,
    AdminDirectory
    类的方法仅对GSsuite帐户的管理员可用。文件规定:
此API为G套件域的管理员(包括经销商)提供 在中管理设备、组、用户和其他实体的能力 他们的领域

  • 因此,不幸的是,对于消费者帐户,您不允许使用
    AdminDirectory
    以编程方式插入用户
  • 允许您使用
    GroupsApp
    ,但此服务没有插入用户的方法

好极了!告诉我我能够启用管理目录api,所以我认为它可以工作。另外,错误文本的信息量稍小。我将用基本计划建立一个测试小组,看看我是否能按需要工作,然后考虑升级我们的ORG计划。非常感谢!杰出的告诉我我能够启用管理目录api,所以我认为它可以工作。另外,错误文本的信息量稍小。我将用基本计划建立一个测试小组,看看我是否能按需要工作,然后考虑升级我们的ORG计划。非常感谢!
Jul 26, 2020, 3:22:09 PM    Info    [[<testmember>@gmail.com]]
Jul 26, 2020, 3:22:09 PM    Info    <currentUser>@gmail.com
Jul 26, 2020, 3:22:10 PM    Info    You are a member of this group. group is: 
Jul 26, 2020, 3:22:10 PM    Info    <mygroup>@googlegroups.com
Jul 26, 2020, 3:22:10 PM    Info    false
Jul 26, 2020, 3:22:11 PM    Info    {delivery_settings=NONE, role=MEMBER, email=<testmember>@gmail.com}
Jul 26, 2020, 3:22:11 PM    Info    <mygroup>@googlegroups.com
Jul 26, 2020, 3:22:11 PM    Error   { [GoogleJsonResponseException: API call to directory.members.insert failed with error: Resource Not Found: groupKey]
  details: 
   { code: 404,
     message: 'Resource Not Found: groupKey',
     errors: [ [Object] ] },
  name: 'GoogleJsonResponseException' }
Jul 26, 2020, 3:22:11 PM    Info    GoogleJsonResponseException: API call to directory.members.insert failed with error: Resource Not Found: groupKey