我正在为 Google 表格编写一个脚本,该脚本使用在数据中找到的电子邮件将成员添加到特定的 Google 组。似乎找到了 Google Group,并且正确返回了 Google Group 的 email/groupKey。会话中的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());
}
}
记录输出(对私人细节进行了一些更改):
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