Google apps script 对directory.members.insert的API调用失败,错误为:未找到资源:groupKey
我正在为Google Sheets编写一个脚本,使用数据中的电子邮件将成员添加到特定的Google组。Google组似乎已找到,并且Google组的电子邮件/groupKey已正确返回。会话(me)中的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
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管理员的方法
- 从你的组名(以
结尾)我可以假设你有一个消费者帐户(免费Gmail帐户)googlegroups.com
- 但是,
类的方法仅对GSsuite帐户的管理员可用。文件规定:AdminDirectory
- 因此,不幸的是,对于消费者帐户,您不允许使用
以编程方式插入用户AdminDirectory
- 允许您使用
,但此服务没有插入用户的方法GroupsApp
- 从你的组名(以
结尾)我可以假设你有一个消费者帐户(免费Gmail帐户)googlegroups.com
- 但是,
类的方法仅对GSsuite帐户的管理员可用。文件规定:AdminDirectory
- 因此,不幸的是,对于消费者帐户,您不允许使用
以编程方式插入用户AdminDirectory
- 允许您使用
,但此服务没有插入用户的方法GroupsApp
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