代码之家  ›  专栏  ›  技术社区  ›  Chadd Yasin Özcan

如何使用google api nodejs客户端获取组成员列表

  •  0
  • Chadd Yasin Özcan  · 技术社区  · 5 年前

    目标

    使用 googleapis 获取组成员列表。 Google's documentation 显示此:

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

    问题

    这个怎么办 directory.groups.get , .hasMembers 还是其他?我不知道如何或在何处向请求添加成员。

    directory.groups.get({
        auth: jwtClient,
        domain: "mydomain.com",
        groupKey: "mygroup@mydomain.com",
    },
    

    什么工作

    这里我有会员信息,但没有会员名单

    exports.getGroupsMemberships = function (jwtClient) {
        return new Promise((resolve, reject) => {
            jwtClient.authorize(err => {
                if (err) reject(err);
                else resolve();
            });
        }).then(() => {
            return new Promise((resolve, reject) => {
                directory.groups.get({
                    auth: jwtClient,
                    domain: "mydomain.com",
                    groupKey: "mygroup@mydomain.com",
                },
                function (err, resp) {
                    if (err) reject(err);
                    else resolve(resp);
                });
            });
        });
    };
    

    哪些回报

      "gsuiteGroupsMemberships : { kind: 'admin#directory#group',
      id: 'xxx...222',
      etag: '"TN3...Dw"',
      email: 'mygroup@mydomain.com',
      name: 'My Group',
      directMembersCount: '3',
      description: 'Use this email group to contact My Group.',
      adminCreated: false,
      nonEditableAliases: [ 'mygroup@mydomain.com.test-google-a.com' ] }"  
    

    当我使用 Try This API 在browswer中,我的确得到了成员列表,即电子邮件、角色等。

    1 回复  |  直到 5 年前
        1
  •  1
  •   Luiz Ferraz    5 年前

    为此,您可以使用 members 资源,而不是 groups .

    exports.getGroupsMemberships = function (jwtClient) {
        return new Promise((resolve, reject) => {
            jwtClient.authorize(err => {
                if (err) reject(err);
                else resolve();
            });
        }).then(() => {
            return new Promise((resolve, reject) => {
                directory.members.list({
                    auth: jwtClient,
                    groupKey: "mygroup@mydomain.com",
                },
                function (err, resp) {
                    if (err) reject(err);
                    else resolve(resp);
                });
            });
        });
    };
    

    如果需要两个组元数据 您需要拨打两个电话的成员列表:

    exports.getGroupDataAndMembers = function (jwtClient) {
        return new Promise((resolve, reject) => {
            jwtClient.authorize(err => {
                if (err) reject(err);
                else resolve();
            });
        }).then(() => {
            return new Promise((resolve, reject) => {
                directory.groups.get({
                    auth: jwtClient,
                    domain: "mydomain.com",
                    groupKey: "mygroup@mydomain.com",
                },
                function (err, resp) {
                    if (err) reject(err);
                    else resolve(resp);
                });
            });
        }).then((groupMetaCall) => {
            return new Promise((resolve, reject) => {
                directory.members.list({
                    auth: jwtClient,
                    groupKey: "mygroup@mydomain.com",
                },
                function (err, resp) {
                    if (err) reject(err);
                    else {
                        groupMetaCall.data.members = resp.data.members;
                        resolve(groupMetaCall);
                    }
                });
            });
        });
    };
    

    您提供的Try this API用于获取成员资源的端点。它返回关于 组的成员。

    以下是成员的文档。列表:
    https://developers.google.com/admin-sdk/directory/v1/reference/members/list