如何使用google-api-nodejs-client获取组成员列表



>目标

使用googleapis获取组成员列表。谷歌的文档显示了这一点:

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' ] }"  

当我在浏览器中使用"尝试此 API"时,我确实会获得成员列表,即电子邮件、角色等。

为此,

您可以使用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);
                }
            });
        });
    });
};

提供的"试用此 API"适用于成员资源的获取终结点。它返回有关组成员的信息。

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

相关内容

  • 没有找到相关文章

最新更新