Skip to content

接口名称

用户组成员管理 - (FeishuTenantV3UserGroupMember)

功能描述

用户组内可以添加部门或用户,部门和用户均属于用户组成员。使用用户组成员API,可以在用户组内添加、移除、查询成员。当前接口使用租户令牌访问,适应于租户应用场景。

参考文档

飞书官方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_idstring用户组ID"cli_xxxxxxxxx"
groupMemberRequestUserGroupMemberRequest添加用户组成员请求体-

请求体参数 (UserGroupMemberRequest)

参数名类型必填说明示例值
member_typestring用户组成员的类型,目前仅支持选择user"user"
member_id_typestring用户ID类型"open_id"
member_idstring添加的用户ID,ID类型与member_id_type的取值保持一致"ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d"

响应

json
{
  "code": 0,
  "msg": "success"
}

错误码

错误码错误信息说明
99991400group not found用户组不存在
99991401member already exists成员已存在
99991402invalid 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_idstring用户组ID"cli_xxxxxxxxx"
groupMemberRequestBatchMembersRequest批量添加用户组成员请求体-

请求体参数 (BatchMembersRequest)

参数名类型必填说明示例值
membersList<UserGroupMemberRequest>待添加成员信息列表-

成员信息参数 (UserGroupMemberRequest)

参数名类型必填说明示例值
member_typestring用户组成员的类型,目前仅支持选择user"user"
member_id_typestring用户ID类型"open_id"
member_idstring添加的用户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
      }
    ]
  }
}

错误码

错误码错误信息说明
99991400group not found用户组不存在
99991401member already exists成员已存在
99991402invalid 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_idstring用户组ID"cli_xxxxxxxxx"
page_sizeint分页大小,即本次请求所返回的用户信息列表内的最大条目数。默认值:1020
page_tokenstring分页标记,第一次请求不填,表示从头开始遍历;分页查询结果还有更多项时会同时返回新的 page_token,下次遍历可采用该 page_token 获取查询结果"page_token_xxx"
member_id_typestring用户组成员ID类型。默认值:open_id"open_id"
member_typestring用户组成员类型。默认值: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
  }
}

错误码

错误码错误信息说明
99991400group not found用户组不存在
99991403invalid 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_idstring用户组ID"cli_xxxxxxxxx"
groupMemberRequestUserGroupMemberRequest移除用户组成员请求体-

请求体参数 (UserGroupMemberRequest)

参数名类型必填说明示例值
member_typestring用户组成员的类型,目前仅支持选择user"user"
member_id_typestring用户ID类型"open_id"
member_idstring移除的用户ID,ID类型与member_id_type的取值保持一致"ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d"

响应

json
{
  "code": 0,
  "msg": "success"
}

错误码

错误码错误信息说明
99991400group not found用户组不存在
99991404member 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_idstring用户组ID"cli_xxxxxxxxx"
groupMemberRequestBatchMembersRequest批量移除用户组成员请求体-

请求体参数 (BatchMembersRequest)

参数名类型必填说明示例值
membersList<UserGroupMemberRequest>待移除成员信息列表-

成员信息参数 (UserGroupMemberRequest)

参数名类型必填说明示例值
member_typestring用户组成员的类型,目前仅支持选择user"user"
member_id_typestring用户ID类型"open_id"
member_idstring移除的用户ID,ID类型与member_id_type的取值保持一致"ou_7d8a6e6df7621552ce5d2f3c4d7e2e4d"

响应

json
{
  "code": 0,
  "msg": "success"
}

错误码

错误码错误信息说明
99991400group not found用户组不存在
99991404member 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}`);
}