【问题标题】:How to get the list of members in a Google group in Google app script (Admin SDK)?如何在 Google 应用脚本(Admin SDK)中获取 Google 群组中的成员列表?
【发布时间】:2016-12-11 14:42:22
【问题描述】:

我想使用 Admin SDK 获取 Google 群组中的成员列表。

但我不知道如何做到这一点。我在下面找到了链接 - https://developers.google.com/admin-sdk/directory/v1/guides/manage-group-members

但我不知道如何在 Google 应用脚本中使用 POST 方法。

有人可以举个例子吗?

更新

我得到如下输出,但我想为组的每个成员分别访问每个元素(角色、电子邮件)。那可能吗??

{ "role": "OWNER", "kind": "admin#directory#member", "type": "USER", "etag": "\"fdo0/1gUrEe8bli75zvzmqFHyH3cPzlQ\"", "id": "107108832717913338955", "email": "useremailid@domain.com", "status": "ACTIVE" }

提前致谢。

【问题讨论】:

  • 请告诉我们您使用的是哪种编程语言或平台。
  • 我正在使用 Google App 脚本编写
  • 可以分享一下app脚本代码吗?您在此处阅读 Google 群组成员或管理成员的目标是什么?
  • 您也是 Google Apps 域的管理员吗?您需要成为 Google Apps 域管理员才能使用管理 SDK?
  • 是的..我确实拥有对域的超级管理员访问权限..我只想读取 Google 组中的成员,然后在需要时更新它们

标签: google-apps-script google-groups-api google-admin-sdk


【解决方案1】:

请按照步骤,

  1. 使用超级管理员帐户登录您的 G 盘。
  2. 创建一张 Google 表格。
  3. 转到工作表工具菜单 -- 脚本编辑器.. 保存脚本项目项目。 启用管理 SDK
  4. 应用脚本编辑器点击 Resources 菜单选择 Advance Google Services -- 在弹出的 Admin Directory APIs 中,然后点击 Google Developers Console 链接. Developer Console -- 点击 Library --> search APIs box enter Admin sdk --> 点击 admin Sdk api link ==> ENABLE 并关闭开发控制台。

=== 在 Apps 脚本编辑器中粘贴以下代码。

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() 函数允许权限,打开你的 Google Sheet 刷新它。

完成。

我已经测试了这 20k 名成员。 谢谢

【讨论】:

  • 我还有一个查询。,是否可以获得我拥有管理员或所有者访问权限的组列表?我的意思是,如果我输入我的电子邮件 id,它应该显示我具有经理或所有者角色的所有组电子邮件 id
  • 目前没有可用的直接方法,但使用用户电子邮件 ID,您可以找到该用户的总组成员身份
  • 好的..还是谢谢你的回复..:)
【解决方案2】:

尝试使用Members:list 检索组中所有成员的列表。

HTTP 请求

GET https://www.googleapis.com/admin/directory/v1/groups/groupKey/members

您的应用程序发送到 Directory API 的每个请求都必须包含授权令牌。该令牌还会向 Google 识别您的应用程序。您的应用程序必须使用 OAuth 2.0 来授权请求​​。

HTTP 响应:

{
  "kind": "admin#directory#members",
  "etag": etag,
  "members": [
    members Resource
  ],
  "nextPageToken": string
}

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 2014-07-31
    • 2020-03-05
    • 2013-07-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    相关资源
    最近更新 更多