我正在试用Admin SDK并尝试在Google Spreadsheet中列出组成员。下面的代码我想出了:AdminDirectory.Members.list授权错误
function recordGroupsMembers() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
// Get all groups
var groupPageToken, groupPage;
do {
groupPage = AdminDirectory.Groups.list({
domain: 'mydomain.com',
maxResults: 100,
pageToken: groupPageToken
});
var groups = groupPage.groups;
if (groups) {
//Iterate groups
for (var i in groups) {
var group = groups[i];
//Get members of group
var membersPageToken, membersPage;
do {
membersPage = AdminDirectory.Members.list(group, {
maxResults: 100,
pageToken: membersPageToken
});
var members = membersPage.members;
if (members) {
//Iterate group members
for (var j in members) {
var member = members[j];
Logger.log('%s member: %s', group.email, member.email);
}
} else {
Logger.log('%s: no members.', group.email);
}
membersPageToken = membersPage.nextPageToken;
} while (membersPageToken);
}
} else {
Logger.log('No groups found.');
}
groupPageToken = groupPage.nextPageToken;
} while (groupPageToken);
ScriptProperties.setProperty('lastUpdate', new Date());
}
对于AdminDirectory.Members.list
通话,显示此错误:
无权访问该资源/ API
要清楚,Admin SDK目录服务已被enabled下的资源>高级Google服务...以及在Google Developer Console中。
此外,运行此脚本的用户能够使用API Explorer成功检索预期结果。
我得到的印象我忽略了一些东西很很简单,或者在“Apps Script handles the authorization flow automatically”这个语句中有个错误。
感谢@hdcerberus,你让我走上正轨。我有足够的权限,但根据[文档](https://developers.google.com/admin-sdk/directory/v1/reference/members/list),“Admin.Members.list”需要一个“groupKey”参数可以是组的ID,电子邮件或别名。我将该行更改为: 'membersPage = AdminDirectory.Members.list(group.id,{maxResults:100,pageToken:membersPageToken});' ......一切都很好。 –