Как использовать google-api-nodejs-client, чтобы получить список участников группы - PullRequest
0 голосов
/ 01 января 2019

Цель

Используйте googleapis, чтобы получить список членов группы. Документация Google показать это:

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 в браузере, я получаю список участниковт. е. электронные письма, роль и т. д.

1 Ответ

0 голосов
/ 01 января 2019

Для этого вы используете список из ресурса 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 Try this предназначен для получения конечной точки ресурса ресурса members.Возвращает информацию о a члене группы.

Вот документация для members.list:
https://developers.google.com/admin-sdk/directory/v1/reference/members/list

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...