Skip to content

飞书群成员 API(租户级) ​

接口名称 ​

飞书群成员 API -(IFeishuTenantV1ChatGroupMember)

功能描述 ​

飞书群成员包括用户和机器人。在飞书群组内,支持添加用户或者机器人作为群成员,同时支持将用户或者机器人设置为群管理员。 当前接口使用租户令牌访问,适应于租户应用场景。

参考文档 ​

函数列表 ​

函数名称功能描述认证方式HTTP 方法接口文档
AddManagersAsync添加群管理员租户令牌POSTAddManagersAsync
DeleteManagersAsync删除群管理员租户令牌POSTDeleteManagersAsync
AddMemberAsync添加群成员租户令牌POSTAddMemberAsync
MeJoinChatGroupAsync主动加入群聊租户令牌PATCHMeJoinChatGroupAsync
RemoveMemberAsync移除群成员租户令牌DELETERemoveMemberAsync
GetMemberPageListByIdAsync分页获取群成员列表租户令牌GETGetMemberPageListByIdAsync
GetMemberInChatByIdAsync判断是否在群中租户令牌GETGetMemberInChatByIdAsync

函数详细内容 ​

添加群管理员 ​

函数名称:添加群管理员

函数签名:

csharp
Task<FeishuApiResult<GroupManagerResult>?> AddManagersAsync(
    [Path] string chat_id,
    [Body] GroupManagerRequest addGroupManagerRequest,
    [Query("member_id_type")] string member_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数类型必填说明
chat_idstring✅群 ID,示例:"oc_a0553eda9014c201e6969b478895c230"
addGroupManagerRequestGroupManagerRequest✅指定群管理员请求体
member_id_typestring⚪用户 ID 类型,默认值:"open_id"

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "manager_ids": ["ou_xxx", "ou_yyy"]
  }
}

代码示例:

csharp
public class GroupMemberService
{
    private readonly IFeishuTenantV1ChatGroupMember _memberClient;

    public GroupMemberService(IFeishuTenantV1ChatGroupMember memberClient)
    {
        _memberClient = memberClient;
    }

    public async Task PromoteToManagerAsync(string chatId, string userId)
    {
        var request = new GroupManagerRequest
        {
            manager_ids = new List<string> { userId }
        };

        var result = await _memberClient.AddManagersAsync(chatId, request);
        if (result?.Code == 0)
        {
            Console.WriteLine("管理员添加成功");
        }
    }
}

删除群管理员 ​

函数名称:删除群管理员

函数签名:

csharp
Task<FeishuApiResult<GroupManagerResult>?> DeleteManagersAsync(
    [Path] string chat_id,
    [Body] GroupManagerRequest deleteGroupManagerRequest,
    [Query("member_id_type")] string member_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数类型必填说明
chat_idstring✅群 ID
deleteGroupManagerRequestGroupManagerRequest✅删除群管理员请求体
member_id_typestring⚪用户 ID 类型,默认值:"open_id"

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "manager_ids": []
  }
}

说明:删除群组内指定的管理员,包括用户类型的管理员和机器人类型的管理员。


添加群成员 ​

函数名称:添加群成员

函数签名:

csharp
Task<FeishuApiResult<AddMemberResult>?> AddMemberAsync(
    [Path] string chat_id,
    [Body] MembersRequest addMemberRequest,
    [Query("member_id_type")] string member_id_type = "open_id",
    [Query("succeed_type")] int succeed_type = 0,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数类型必填说明
chat_idstring✅群 ID
addMemberRequestMembersRequest✅将用户或机器人拉入群聊请求体
member_id_typestring⚪用户 ID 类型,默认值:"open_id"
succeed_typeint⚪出现不可用ID后的处理方式,0/1/2,默认值:0

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "invalid_ids": [],
    "invalid_id_failure": {}
  }
}

说明:succeed_type 可选值:

  • 0:不存在/不可见的 ID 会拉群失败,并返回错误响应
  • 1:将参数中可用的 ID 全部拉入群聊,返回拉群成功的响应,并展示剩余不可用的 ID 及原因
  • 2:参数中只要存在任一不可用的 ID,就会拉群失败,返回错误响应,并展示出不可用的 ID

代码示例:

csharp
public async Task AddMembersToGroupAsync(string chatId, List<string> userIds)
{
    var request = new MembersRequest
    {
        id_list = userIds
    };

    // 使用 succeed_type=1,允许部分成功
    var result = await _memberClient.AddMemberAsync(
        chatId, 
        request, 
        succeed_type: 1);
    
    if (result?.Data?.invalid_ids?.Count > 0)
    {
        Console.WriteLine($"以下用户添加失败: {string.Join(",", result.Data.invalid_ids)}");
    }
}

主动加入群聊 ​

函数名称:主动加入群聊

函数签名:

csharp
Task<FeishuNullDataApiResult?> MeJoinChatGroupAsync(
    [Path] string chat_id,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数类型必填说明
chat_idstring✅群 ID

响应:

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

说明:将当前调用接口的操作者(用户或机器人)加入指定群聊。群组需要设置为允许成员主动加入。


移除群成员 ​

函数名称:移除群成员

函数签名:

csharp
Task<FeishuApiResult<RemoveMemberResult>?> RemoveMemberAsync(
    [Path] string chat_id,
    [Body] MembersRequest membersRequest,
    [Query("member_id_type")] string member_id_type = "open_id",
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数类型必填说明
chat_idstring✅群 ID
membersRequestMembersRequest✅移除成员 ID 列表请求体
member_id_typestring⚪用户 ID 类型,默认值:"open_id"

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "removed_ids": ["ou_xxx"]
  }
}

说明:将指定的用户或机器人从群聊中移出。


分页获取群成员列表 ​

函数名称:分页获取群成员列表

函数签名:

csharp
Task<FeishuApiResult<GetMemberPageListResult>?> GetMemberPageListByIdAsync(
    [Path] string chat_id,
    [Query("user_id_type")] string user_id_type = "open_id",
    [Query("page_size")] int? page_size = 10,
    [Query("page_token")] string? page_token = null,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数类型必填说明
chat_idstring✅群 ID
user_id_typestring⚪用户 ID 类型,默认值:"open_id"
page_sizeint?⚪分页大小,默认值:10
page_tokenstring?⚪分页标记

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "items": [
      {
        "member_id": "ou_xxx",
        "member_type": "user",
        "name": "张三"
      }
    ],
    "page_token": "next_token",
    "has_more": true
  }
}

代码示例:

csharp
public async Task ListAllMembersAsync(string chatId)
{
    string? pageToken = null;
    do
    {
        var result = await _memberClient.GetMemberPageListByIdAsync(
            chatId,
            page_token: pageToken,
            page_size: 100);
        
        if (result?.Data?.items != null)
        {
            foreach (var member in result.Data.items)
            {
                Console.WriteLine($"成员: {member.name} ({member.member_id})");
            }
        }
        pageToken = result?.Data?.page_token;
    } while (!string.IsNullOrEmpty(pageToken));
}

判断是否在群中 ​

函数名称:判断是否在群中

函数签名:

csharp
Task<FeishuApiResult<GetMemberIsInChatResult>?> GetMemberInChatByIdAsync(
    [Path] string chat_id,
    CancellationToken cancellationToken = default);

认证:租户令牌

参数:

参数类型必填说明
chat_idstring✅群 ID

响应:

json
{
  "code": 0,
  "msg": "success",
  "data": {
    "is_in_chat": true
  }
}

说明:根据使用的 access_token 判断对应的用户或者机器人是否在指定的群里。