如何使用google-api-nodejs-client获取群成员列表
How to use google-api-nodejs-client to get a list of group members
目标
使用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);
});
});
});
};
哪个returns
"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 时,我确实得到了成员列表,即电子邮件、角色等。
为此,您使用 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 用于成员资源的获取端点。它returns关于一个组成员的信息。
这是 members.list 的文档:
https://developers.google.com/admin-sdk/directory/v1/reference/members/list
目标
使用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);
});
});
});
};
哪个returns
"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 时,我确实得到了成员列表,即电子邮件、角色等。
为此,您使用 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 用于成员资源的获取端点。它returns关于一个组成员的信息。
这是 members.list 的文档:
https://developers.google.com/admin-sdk/directory/v1/reference/members/list