我想使用Admin SDK获得Google组中的成员列表。
但我不知道该怎么做。我在下面找到了链接-https://developers.google.com/admin-sdk/directory/v1/guides/manage-group-members
但我不知道如何在谷歌应用程序脚本中使用POST方法。
有人能给我举个例子吗?
更新
我得到的输出如下,但我想分别访问组中每个成员的每个元素(角色、电子邮件(。这可能吗??
{
"role": "OWNER",
"kind": "admin#directory#member",
"type": "USER",
"etag": ""fdo0/1gUrEe8bli75zvzmqFHyH3cPzlQ"",
"id": "107108832717913338955",
"email": "useremailid@domain.com",
"status": "ACTIVE"
}
提前谢谢。
请按照步骤操作,
- 使用超级管理员帐户登录您的G驱动器
- 创建一个谷歌工作表
- 转到工作表"工具"菜单--脚本编辑器。。保存脚本项目项目启用管理SDK
- 应用程序脚本编辑器单击资源菜单,选择高级谷歌服务--在管理目录Apis上的弹出窗口中,然后单击谷歌开发者控制台链接。开发人员控制台-单击库-->搜索api框,输入Admin sdk-->单击Admin sdk api link=>ENABLE并关闭开发人员控制台
===在应用程序脚本编辑器中粘贴以下代码。
var onSheet = SpreadsheetApp.getActiveSpreadsheet();
var groupKey = "googlegroupid@domainName.com"
function MainGetUserList()
{
var rows = [];
var pageToken, page;
do {
page = AdminDirectory.Members.list(groupKey,
{
domainName: 'YOURDOMAINNAME.@com',
maxResults: 500,
pageToken: pageToken,
});
var members = page.members
if (members)
{
for (var i = 0; i < members.length; i++)
{
var member = members[i];
var row = [groupKey, member.email, member.role, member.status];
rows.push(row);
}
}
pageToken = page.nextPageToken;
} while (pageToken);
if (rows.length > 1)
{
var sheetData = onSheet.getSheetByName("Sheet1")
var header = ['Group Name', 'User Id', 'User role', 'User Status'];
sheetData.clear()
sheetData.appendRow(header).setFrozenRows(1);
sheetData.getRange(2, 1, rows.length, header.length).setValues(rows);
}
}
===>运行MainGetUserList((函数允许权限,打开你的谷歌表单刷新它。
完成。
我已经测试了这2万名成员。感谢
尝试使用Members:list
检索组中所有成员的列表。
HTTP请求
GET https://www.googleapis.com/admin/directory/v1/groups/groupKey/members
应用程序发送到目录API的每个请求都必须包含授权令牌。该令牌还向谷歌标识您的应用程序。您的应用程序必须使用OAuth 2.0来授权请求。
HTTP响应:
{
"kind": "admin#directory#members",
"etag": etag,
"members": [
members Resource
],
"nextPageToken": string
}