接口名称
用户组成员管理 - (FeishuTenantV3UserGroupMember)
功能描述
用户组内可以添加部门或用户,部门和用户均属于用户组成员。使用用户组成员API,可以在用户组内添加、移除、查询成员。当前接口使用租户令牌访问,适应于租户应用场景。
参考文档
函数列表
| 函数名称 | 功能描述 | 认证方式 | HTTP 方法 |
|---|---|---|---|
| AddMemberAsync | 向指定用户组添加单个成员 | 租户令牌 | POST |
| BatchAddMemberAsync | 向指定用户组批量添加成员 | 租户令牌 | POST |
| GetMemberListByGroupIdAsync | 查询指定用户组的成员列表 | 租户令牌 | GET |
| RemoveMemberAsync | 从指定用户组移除单个成员 | 租户令牌 | POST |
| BatchRemoveMemberAsync | 从指定用户组批量移除成员 | 租户令牌 | POST |
函数详细内容
向指定用户组添加单个成员
函数签名
csharp
Task<FeishuNullDataApiResult?> AddMemberAsync(
[Path] string group_id,
[Body] UserGroupMemberRequest groupMemberRequest,
CancellationToken cancellationToken = default);认证 租户令牌
参数
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| group_id | string | ✅ | 用户组ID | "cli_xxxxxxxxx" |
| groupMemberRequest | UserGroupMemberRequest | ✅ | 添加用户组成员请求体 | - |
请求体参数 (UserGroupMemberRequest)
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| member_type | string | ✅ | 用户组成员的类型,目前仅支持选择user | "user" |
| member_id_type | string | ✅ | 用户ID类型 | "open_id" |
| member_id | string | ✅ | 添加的用户ID,ID类型与member_id_type的取值保持一致 | "ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d" |
响应
json
{
"code": 0,
"msg": "success"
}错误码
| 错误码 | 错误信息 | 说明 |
|---|---|---|
| 99991400 | group not found | 用户组不存在 |
| 99991401 | member already exists | 成员已存在 |
| 99991402 | invalid member id | 无效的成员ID |
说明
- 目前仅支持添加用户类型的成员
- 一个用户可以同时属于多个用户组
- 添加成员需要具有用户组管理权限
代码示例
typescript
import { FeishuTenantV3UserGroupMember } from 'mud-feishu';
const groupMemberApi = new FeishuTenantV3UserGroupMember();
// 向用户组添加成员
const result = await groupMemberApi.addMember(
"cli_xxxxxxxxx", // 用户组ID
{
member_type: "user",
member_id_type: "open_id",
member_id: "ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d"
}
);
if (result.code === 0) {
console.log("成员添加成功");
} else {
console.error(`成员添加失败: ${result.msg}`);
}向指定用户组批量添加成员
函数签名
csharp
Task<FeishuApiResult<BatchAddMemberResult>?> BatchAddMemberAsync(
[Path] string group_id,
[Body] BatchMembersRequest groupMemberRequest,
CancellationToken cancellationToken = default);认证 租户令牌
参数
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| group_id | string | ✅ | 用户组ID | "cli_xxxxxxxxx" |
| groupMemberRequest | BatchMembersRequest | ✅ | 批量添加用户组成员请求体 | - |
请求体参数 (BatchMembersRequest)
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| members | List<UserGroupMemberRequest> | ✅ | 待添加成员信息列表 | - |
成员信息参数 (UserGroupMemberRequest)
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| member_type | string | ✅ | 用户组成员的类型,目前仅支持选择user | "user" |
| member_id_type | string | ✅ | 用户ID类型 | "open_id" |
| member_id | string | ✅ | 添加的用户ID,ID类型与member_id_type的取值保持一致 | "ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d" |
响应
json
{
"code": 0,
"msg": "success",
"data": {
"results": [
{
"member_id": "ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d",
"code": 0
},
{
"member_id": "ou_8e9f7a0e8772663dfd3e4d5e5f9f3e5e",
"code": 0
}
]
}
}错误码
| 错误码 | 错误信息 | 说明 |
|---|---|---|
| 99991400 | group not found | 用户组不存在 |
| 99991401 | member already exists | 成员已存在 |
| 99991402 | invalid member id | 无效的成员ID |
说明
- 批量添加最多支持添加100个成员
- 返回结果中包含每个成员的添加结果,可用于检查哪些成员添加成功,哪些失败
- 部分成员添加失败不会影响其他成员的添加
代码示例
typescript
import { FeishuTenantV3UserGroupMember } from 'mud-feishu';
const groupMemberApi = new FeishuTenantV3UserGroupMember();
// 批量向用户组添加成员
const result = await groupMemberApi.batchAddMember(
"cli_xxxxxxxxx", // 用户组ID
{
members: [
{
member_type: "user",
member_id_type: "open_id",
member_id: "ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d"
},
{
member_type: "user",
member_id_type: "open_id",
member_id: "ou_8e9f7a0e8772663dfd3e4d5e5f9f3e5e"
}
]
}
);
if (result.code === 0) {
console.log("批量添加成员成功");
result.data.results.forEach(item => {
if (item.code === 0) {
console.log(`成员 ${item.member_id} 添加成功`);
} else {
console.error(`成员 ${item.member_id} 添加失败`);
}
});
} else {
console.error(`批量添加成员失败: ${result.msg}`);
}查询指定用户组的成员列表
函数签名
csharp
Task<FeishuApiResult<MemberListRequest>?> GetMemberListByGroupIdAsync(
[Path] string group_id,
[Query("page_size")] int? page_size = 10,
[Query("page_token")] string? page_token = null,
[Query("member_id_type")] string? member_id_type = Consts.User_Id_Type,
[Query("member_type")] string? member_type = "user",
CancellationToken cancellationToken = default);认证 租户令牌
参数
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| group_id | string | ✅ | 用户组ID | "cli_xxxxxxxxx" |
| page_size | int | ⚪ | 分页大小,即本次请求所返回的用户信息列表内的最大条目数。默认值:10 | 20 |
| page_token | string | ⚪ | 分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果 | "page_token_xxx" |
| member_id_type | string | ⚪ | 用户组成员ID类型。默认值:open_id | "open_id" |
| member_type | string | ⚪ | 用户组成员类型。默认值:user | "user" |
响应
json
{
"code": 0,
"msg": "success",
"data": {
"memberlist": [
{
"member_type": "user",
"member_id_type": "open_id",
"member_id": "ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d"
},
{
"member_type": "user",
"member_id_type": "open_id",
"member_id": "ou_8e9f7a0e8772663dfd3e4d5e5f9f3e5e"
}
],
"page_token": "page_token_xxx",
"has_more": true
}
}错误码
| 错误码 | 错误信息 | 说明 |
|---|---|---|
| 99991400 | group not found | 用户组不存在 |
| 99991403 | invalid page_size | 无效的分页大小 |
说明
- 支持按成员类型过滤查询结果
- page_size最大值为100
- 返回结果按成员添加时间倒序排列
代码示例
typescript
import { FeishuTenantV3UserGroupMember } from 'mud-feishu';
const groupMemberApi = new FeishuTenantV3UserGroupMember();
// 获取用户组成员列表
let pageToken: string | undefined = undefined;
do {
const result = await groupMemberApi.getMemberListByGroupId(
"cli_xxxxxxxxx", // 用户组ID
20, // 每页20条记录
pageToken, // 分页标记
"open_id", // 成员ID类型
"user" // 成员类型
);
if (result.code === 0) {
result.data.memberlist.forEach(item => {
console.log(`成员ID: ${item.member_id}, 类型: ${item.member_type}`);
});
pageToken = result.data.has_more ? result.data.page_token : undefined;
} else {
console.error(`获取成员列表失败: ${result.msg}`);
break;
}
} while (pageToken);从指定用户组移除单个成员
函数签名
csharp
Task<FeishuNullDataApiResult?> RemoveMemberAsync(
[Path] string group_id,
[Body] UserGroupMemberRequest groupMemberRequest,
CancellationToken cancellationToken = default);认证 租户令牌
参数
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| group_id | string | ✅ | 用户组ID | "cli_xxxxxxxxx" |
| groupMemberRequest | UserGroupMemberRequest | ✅ | 移除用户组成员请求体 | - |
请求体参数 (UserGroupMemberRequest)
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| member_type | string | ✅ | 用户组成员的类型,目前仅支持选择user | "user" |
| member_id_type | string | ✅ | 用户ID类型 | "open_id" |
| member_id | string | ✅ | 移除的用户ID,ID类型与member_id_type的取值保持一致 | "ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d" |
响应
json
{
"code": 0,
"msg": "success"
}错误码
| 错误码 | 错误信息 | 说明 |
|---|---|---|
| 99991400 | group not found | 用户组不存在 |
| 99991404 | member not found | 成员不存在 |
说明
- 移除成员不会删除用户,只是将其从用户组中移除
- 移除成员需要具有用户组管理权限
代码示例
typescript
import { FeishuTenantV3UserGroupMember } from 'mud-feishu';
const groupMemberApi = new FeishuTenantV3UserGroupMember();
// 从用户组移除成员
const result = await groupMemberApi.removeMember(
"cli_xxxxxxxxx", // 用户组ID
{
member_type: "user",
member_id_type: "open_id",
member_id: "ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d"
}
);
if (result.code === 0) {
console.log("成员移除成功");
} else {
console.error(`成员移除失败: ${result.msg}`);
}从指定用户组批量移除成员
函数签名
csharp
Task<FeishuNullDataApiResult?> BatchRemoveMemberAsync(
[Path] string group_id,
[Body] BatchMembersRequest groupMemberRequest,
CancellationToken cancellationToken = default);认证 租户令牌
参数
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| group_id | string | ✅ | 用户组ID | "cli_xxxxxxxxx" |
| groupMemberRequest | BatchMembersRequest | ✅ | 批量移除用户组成员请求体 | - |
请求体参数 (BatchMembersRequest)
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| members | List<UserGroupMemberRequest> | ✅ | 待移除成员信息列表 | - |
成员信息参数 (UserGroupMemberRequest)
| 参数名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| member_type | string | ✅ | 用户组成员的类型,目前仅支持选择user | "user" |
| member_id_type | string | ✅ | 用户ID类型 | "open_id" |
| member_id | string | ✅ | 移除的用户ID,ID类型与member_id_type的取值保持一致 | "ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d" |
响应
json
{
"code": 0,
"msg": "success"
}错误码
| 错误码 | 错误信息 | 说明 |
|---|---|---|
| 99991400 | group not found | 用户组不存在 |
| 99991404 | member not found | 成员不存在 |
说明
- 批量移除最多支持移除100个成员
- 部分成员移除失败不会影响其他成员的移除
代码示例
typescript
import { FeishuTenantV3UserGroupMember } from 'mud-feishu';
const groupMemberApi = new FeishuTenantV3UserGroupMember();
// 批量从用户组移除成员
const result = await groupMemberApi.batchRemoveMember(
"cli_xxxxxxxxx", // 用户组ID
{
members: [
{
member_type: "user",
member_id_type: "open_id",
member_id: "ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d"
},
{
member_type: "user",
member_id_type: "open_id",
member_id: "ou_8e9f7a0e8772663dfd3e4d5e5f9f3e5e"
}
]
}
);
if (result.code === 0) {
console.log("批量移除成员成功");
} else {
console.error(`批量移除成员失败: ${result.msg}`);
}