Skip to content

人员类型管理

功能描述

飞书人员类型是通讯录中一种特殊的用户属性字段,用于标记用户的身份类型。系统默认包含正式、实习、外包、劳务、顾问五个预定义类型,同时支持创建自定义人员类型。该API提供完整的人员类型管理功能,包括创建、更新、查询和删除自定义人员类型,满足企业多样化的人员分类管理需求。

函数列表

函数名称功能描述认证方式HTTP方法
CreateEmployeeTypeAsync新增一个自定义的人员类型user_access_tokenPOST
UpdateEmployeeTypeAsync更新指定的自定义人员类型信息user_access_tokenPUT
GetEmployeeTypesAsync查询当前租户下所有的人员类型信息user_access_tokenGET
DeleteEmployeeTypeByIdAsync删除指定的自定义人员类型user_access_tokenDELETE

CreateEmployeeTypeAsync

认证:user_access_token
参数

  • user_access_token (必填) - 用户访问令牌
  • groupInfoRequest (必填) - 新增人员类型请求体

响应

json
成功响应:
{
  "code": 0,
  "data": {
    "employee_type_enum": {
      "enum_id": "67890",
      "enum_value": "6",
      "content": "专家顾问",
      "enum_type": 2,
      "enum_status": 1,
      "i18n_content": [
        {
          "locale": "zh_cn",
          "value": "专家顾问(中文)"
        },
        {
          "locale": "en_us", 
          "value": "Expert Advisor"
        }
      ]
    }
  }
}

错误响应:
{
  "code": 400,
  "msg": "人员类型内容已存在"
}

说明

  • enum_type 固定取值为 2(自定义类型)
  • enum_status 为 1 表示激活状态,2 表示未激活状态
  • 支持配置国际化内容,满足多语言需求
  • 创建成功后会自动分配 enum_id 和 enum_value

代码示例

csharp
// 创建新的人员类型
var createRequest = new EmployeeTypeEnumRequest
{
    Content = "专家顾问",
    EnumType = 2, // 自定义类型
    EnumStatus = 1, // 激活状态
    I18nContent = new List<I18nContent>
    {
        new I18nContent
        {
            Locale = "zh_cn",
            Value = "专家顾问(中文)"
        },
        new I18nContent
        {
            Locale = "en_us",
            Value = "Expert Advisor"
        }
    }
};

var result = await _feishuApi.CreateEmployeeTypeAsync(
    userAccessToken,
    createRequest);

if (result.Success)
{
    var employeeType = result.Data.EmployeeTypeEnum;
    Console.WriteLine($"人员类型创建成功:{employeeType.Content} (ID: {employeeType.EnumId})");
    
    if (employeeType.I18nContent != null)
    {
        foreach (var i18n in employeeType.I18nContent)
        {
            Console.WriteLine($"  {i18n.Locale}: {i18n.Value}");
        }
    }
}
else
{
    Console.WriteLine($"创建失败:{result.Message}");
}

UpdateEmployeeTypeAsync

认证:user_access_token
参数

  • user_access_token (必填) - 用户访问令牌
  • enum_id (必填) - 自定义人员类型的选项ID
  • groupInfoRequest (必填) - 更新人员类型请求体

响应

json
成功响应:
{
  "code": 0,
  "data": {
    "employee_type_enum": {
      "enum_id": "67890",
      "enum_value": "6",
      "content": "高级专家顾问",
      "enum_type": 2,
      "enum_status": 1,
      "i18n_content": [
        {
          "locale": "zh_cn",
          "value": "高级专家顾问"
        }
      ]
    }
  }
}

错误响应:
{
  "code": 404,
  "msg": "人员类型不存在"
}

说明

  • 只能更新自定义类型(enum_type = 2)
  • 不能更新系统内置的5个默认类型
  • 可以修改内容、状态和国际化配置

代码示例

csharp
// 更新人员类型
var updateRequest = new EmployeeTypeEnumRequest
{
    Content = "高级专家顾问",
    EnumType = 2,
    EnumStatus = 1,
    I18nContent = new List<I18nContent>
    {
        new I18nContent
        {
            Locale = "zh_cn",
            Value = "高级专家顾问(更新版)"
        },
        new I18nContent
        {
            Locale = "en_us",
            Value = "Senior Expert Advisor"
        }
    }
};

var result = await _feishuApi.UpdateEmployeeTypeAsync(
    userAccessToken,
    "67890",
    updateRequest);

if (result.Success)
{
    var updatedType = result.Data.EmployeeTypeEnum;
    Console.WriteLine($"人员类型更新成功:{updatedType.Content}");
    
    // 检查是否需要停用某些类型
    if (updatedType.EnumStatus == 0)
    {
        Console.WriteLine("注意:该人员类型已被停用");
    }
}
else
{
    Console.WriteLine($"更新失败:{result.Message}");
}

GetEmployeeTypesAsync

认证:user_access_token
参数

  • user_access_token (必填) - 用户访问令牌
  • page_size (可选) - 分页大小,默认10
  • page_token (可选) - 分页标记

响应

json
成功响应:
{
  "code": 0,
  "data": {
    "items": [
      {
        "enum_id": "1",
        "enum_value": "1",
        "content": "正式员工",
        "enum_type": 1,
        "enum_status": 1
      },
      {
        "enum_id": "2", 
        "enum_value": "2",
        "content": "实习生",
        "enum_type": 1,
        "enum_status": 1
      },
      {
        "enum_id": "67890",
        "enum_value": "6", 
        "content": "专家顾问",
        "enum_type": 2,
        "enum_status": 1,
        "i18n_content": [
          {
            "locale": "zh_cn",
            "value": "专家顾问"
          }
        ]
      }
    ],
    "page_token": "next_page_token"
  }
}

说明

  • 返回所有人员类型,包括系统内置和自定义的
  • enum_type = 1 表示系统内置类型,enum_type = 2 表示自定义类型
  • 支持分页获取大量数据

代码示例

csharp
// 获取所有人员类型
var pageSize = 50;
var pageToken = "";
var allEmployeeTypes = new List<EmployeeTypeEnum>();

do
{
    var result = await _feishuApi.GetEmployeeTypesAsync(
        userAccessToken,
        page_size: pageSize,
        page_token: string.IsNullOrEmpty(pageToken) ? null : pageToken);

    if (result.Success)
    {
        allEmployeeTypes.AddRange(result.Data.Items);
        
        // 分类显示人员类型
        Console.WriteLine("系统内置类型:");
        foreach (var type in result.Data.Items.Where(t => t.EnumType == 1))
        {
            Console.WriteLine($"  {type.Content} ({type.EnumStatus == 1 ? "启用" : "停用"})");
        }
        
        Console.WriteLine("\n自定义类型:");
        foreach (var type in result.Data.Items.Where(t => t.EnumType == 2))
        {
            Console.WriteLine($"  {type.Content} (ID: {type.EnumId}, {type.EnumStatus == 1 ? "启用" : "停用"})");
        }

        pageToken = result.Data.PageToken;
    }
    else
    {
        Console.WriteLine($"获取失败:{result.Message}");
        break;
    }
} while (!string.IsNullOrEmpty(pageToken));

Console.WriteLine($"\n总共获取到 {allEmployeeTypes.Count} 种人员类型");

DeleteEmployeeTypeByIdAsync

认证:user_access_token
参数

  • user_access_token (必填) - 用户访问令牌
  • enum_id (必填) - 自定义人员类型的选项ID

响应

json
成功响应:
{
  "code": 0,
  "msg": "success"
}

错误响应:
{
  "code": 400,
  "msg": "不能删除系统内置人员类型"
}

错误响应:
{
  "code": 404,
  "msg": "人员类型不存在"
}

说明

  • 仅支持删除自定义人员类型(enum_type = 2)
  • 系统内置的5个默认类型(正式、实习、外包、劳务、顾问)不支持删除
  • 删除前请确认该类型没有被用户使用

代码示例

csharp
// 安全删除人员类型(先检查是否可删除)
var enumIdToDelete = "67890";

// 先获取人员类型详情
var getTypesResult = await _feishuApi.GetEmployeeTypesAsync(
    userAccessToken,
    page_size: 100);

if (getTypesResult.Success)
{
    var targetType = getTypesResult.Data.Items.FirstOrDefault(t => t.EnumId == enumIdToDelete);
    
    if (targetType == null)
    {
        Console.WriteLine("人员类型不存在");
        return;
    }
    
    if (targetType.EnumType == 1)
    {
        Console.WriteLine("不能删除系统内置人员类型");
        return;
    }
    
    Console.WriteLine($"准备删除人员类型:{targetType.Content}");
    
    // 确认删除
    var deleteResult = await _feishuApi.DeleteEmployeeTypeByIdAsync(
        userAccessToken,
        enumIdToDelete);
    
    if (deleteResult.Success)
    {
        Console.WriteLine("人员类型删除成功");
    }
    else
    {
        Console.WriteLine($"删除失败:{deleteResult.Message}");
    }
}

版本记录

版本日期说明作者
v1.0.02025-11-20初始版本,包含所有人员类型管理APIMud Studio