Skip to content

Mud.Feishu.EventCallback

飞书服务端 SDK 的 .NET 适配版,提供事件与回调功能强数据模型封装。

项目简介

Mud.Feishu.EventCallback 是 MudFeishu SDK 的核心组件之一,专门用于处理飞书平台的事件回调。本项目提供了完整的强类型数据模型,帮助开发者轻松处理飞书各种事件推送。

特性

  • 强类型数据模型 - 所有事件数据均有完整的类型定义和 XML 文档注释
  • 自动生成事件处理器 - 使用源代码生成器自动生成事件处理器基类
  • 多框架支持 - 支持 .NET Standard 2.0、.NET 6.0、.NET 8.0、.NET 10.0
  • 完整的事件覆盖 - 覆盖飞书主要业务场景的事件回调
  • 官方文档链接 - 每个事件模型都包含官方文档链接

支持的事件类型

👥 组织架构事件(Organization)

事件类型事件委托类事件说明
contact.user.created_v3UserCreateEventHandler员工入职事件
contact.user.updated_v3UserUpdateEventHandler员工信息更新事件
contact.user.deleted_v3UserDeleteEventHandler员工离职事件
contact.department.created_v3DepartmentCreatedEventHandler部门创建事件
contact.department.updated_v3DepartmentUpdateEventHandler部门更新事件
contact.department.deleted_v3DepartmentDeleteEventHandler部门删除事件
contact.custom_attr_event.updated_v3CustomAttrUpdateEventHandler成员字段变更事件
contact.employee_type_enum.created_v3EmployeeTypeEnumCreatedEventHandler人员类型创建事件
contact.employee_type_enum.updated_v3EmployeeTypeEnumUpdateEventHandler人员类型更新事件
contact.employee_type_enum.deleted_v3EmployeeTypeEnumDeleteEventHandler人员类型删除事件
contact.employee_type_enum.actived_v3EmployeeTypeEnumActivedEventHandler人员类型启用事件
contact.employee_type_enum.deactivated_v3EmployeeTypeEnumDeActivedEventHandler人员类型禁用事件

💬 即时通讯事件(IM)

事件类型事件委托类事件说明
im.message.receive_v1MessageReceiveEventHandler接收消息事件
im.message.recalled_v1MessageRecalledEventHandler消息撤回事件
im.message.message_read_v1MessageReadEventHandler消息已读事件
im.message.reaction.created_v1MessageReactionCreatedEventHandler新增消息表情回复事件
im.message.reaction.deleted_v1MessageReactionDeletedEventHandler删除消息表情回复事件
im.chat.disbanded_v1ChatDisbandedEventHandler群解散事件
im.chat.updated_v1ChatUpdatedEventHandler群配置修改事件
im.chat.member.user.added_v1ChatMemberUserAddedEventHandler用户进群事件
im.chat.member.user.deleted_v1ChatMemberUserDeletedEventHandler用户出群事件
im.chat.member.user.withdrawn_v1ChatMemberUserWithdrawnEventHandler撤销拉用户进群事件
im.chat.member.bot.added_v1ChatMemberBotAddedEventHandler机器人进群事件
im.chat.member.bot.deleted_v1ChatMemberBotDeletedEventHandler机器人被移出群事件

📋 审批事件(Approval)

事件类型事件委托类事件说明
approval.approval.updated_v4ApprovalApprovalUpdatedEventHandler审批定义更新事件
approval_instanceApprovalInstanceEventHandler审批实例状态变更事件
approval_taskApprovalTaskEventHandler审批任务状态变更事件
approval_ccApprovalCcEventHandler审批抄送状态变更事件
approval.instance.trip_group_update_v4ApprovalInstanceTripGroupUpdateEventHandler出差审批事件
approval.instance.remedy_group_update_v4ApprovalInstanceRemedyGroupUpdateEventHandler补卡审批事件
leave_approvalLeaveApprovalEventHandler请假审批事件
leave_approvalV2LeaveApprovalV2EventHandler请假审批事件 V2
leave_approval_revertLeaveApprovalRevertEventHandler请假审批通过并撤销事件
work_approvalWorkApprovalEventHandler加班审批事件
work_approval_revertWorkApprovalRevertEventHandler加班审批通过并撤销事件
out_approvalOutApprovalEventHandler外出审批事件
shift_approvalShiftApprovalEventHandler换班审批事件

✅ 任务事件(Task)

事件类型事件委托类事件说明
task.task.updated_v1TaskUpdatedEventHandler任务信息变更(应用维度)事件
task.task.update_tenant_v1TaskUpdateTenantEventHandler任务信息变更(租户维度)事件
task.task.comment.updated_v1TaskCommentUpdatedEventHandler任务评论信息变更事件

☁️ 云盘事件(Drive)

事件类型事件委托类事件说明
drive.file.created_in_folder_v1DriveFileCreatedEventHandler文件夹下文件创建事件
drive.file.title_updated_v1DriveFileTitleUpdatedEventHandler文件标题更新事件
drive.file.read_v1DriveFileReadEventHandler文件已读事件
drive.file.edit_v1DriveFileEditEventHandler文件编辑事件
drive.file.permission_member_applied_v1DriveFilePermissionMemberAppliedEventHandler文件协作者权限申请事件
drive.file.permission_member_added_v1DriveFilePermissionMemberAddedEventHandler文件协作者添加事件
drive.file.permission_member_removed_v1DriveFilePermissionMemberRemovedEventHandler文档协作者移除事件
drive.file.trashed_v1DriveFileTrashedEventHandler文件删除到回收站事件
drive.file.deleted_v1DriveFileDeletedEventHandler文件删除事件
drive.notice.comment_add_v1DriveNoticeCommentAddEventHandler文件评论新增事件

📋 多维表格事件(Bitable)

事件类型事件委托类事件说明
drive.file.bitable_field_changed_v1BitableFieldChangedEventHandler多维表格字段变更事件
drive.file.bitable_record_changed_v1BitableRecordChangedEventHandler多维表格记录变更事件

⏰ 考勤事件(Attendance)

事件类型事件委托类事件说明
attendance.user_flow.created_v1AttendanceUserFlowCreatedEventHandler考勤用户打卡流水事件
attendance.user_task.updated_v1AttendanceUserTaskUpdatedEventHandler考勤用户任务更新事件

安装

通过 NuGet 安装

bash
dotnet add package Mud.Feishu.EventCallback

支持的目标框架

  • .NET Standard 2.0
  • .NET 6.0
  • .NET 8.0
  • .NET 10.0

快速开始

1. 定义事件处理器

继承自动生成的事件处理器基类,实现业务逻辑:

csharp
using Mud.Feishu.EventCallback.IM;

public class MyMessageHandler : MessageReceiveEventHandler
{
    private readonly ILogger<MyMessageHandler> _logger;

    public MyMessageHandler(ILogger<MyMessageHandler> logger)
    {
        _logger = logger;
    }

    public override async Task HandleAsync(MessageReceiveResult result, CancellationToken cancellationToken = default)
    {
        _logger.LogInformation("收到消息:{MessageId}", result.Message?.MessageId);

        if (result.Message?.Content != null)
        {
            var content = result.Message.Content;
            _logger.LogInformation("消息内容:{Content}", content);
        }

        await Task.CompletedTask;
    }
}

2. 处理审批事件

csharp
using Mud.Feishu.EventCallback.Approval;

public class LeaveApprovalHandler : LeaveApprovalEventHandler
{
    private readonly ILogger<LeaveApprovalHandler> _logger;

    public LeaveApprovalHandler(ILogger<LeaveApprovalHandler> logger)
    {
        _logger = logger;
    }

    public override async Task HandleAsync(LeaveApprovalResult result, CancellationToken cancellationToken = default)
    {
        _logger.LogInformation(
            "员工 {EmployeeId} 请假申请:{StartTime} 至 {EndTime},时长 {Duration} 秒",
            result.EmployeeId,
            result.LeaveStartTime,
            result.LeaveEndTime,
            result.LeaveInterval
        );

        await Task.CompletedTask;
    }
}

3. 处理组织架构事件

csharp
using Mud.Feishu.EventCallback.Organization;

public class UserCreatedHandler : UserCreateEventHandler
{
    private readonly ILogger<UserCreatedHandler> _logger;

    public UserCreatedHandler(ILogger<UserCreatedHandler> logger)
    {
        _logger = logger;
    }

    public override async Task HandleAsync(UserCreateResult result, CancellationToken cancellationToken = default)
    {
        _logger.LogInformation(
            "新员工入职:{Name} ({UserId})",
            result.Name,
            result.UserId
        );

        await Task.CompletedTask;
    }
}

数据模型结构

每个事件数据模型都实现了 IEventResult 接口,并包含:

  • 完整的属性定义 - 所有字段均有强类型定义
  • JSON 序列化特性 - 使用 [JsonPropertyName] 标注字段映射
  • XML 文档注释 - 详细的中文注释说明
  • 官方文档链接 - 通过 <see href> 链接到官方文档

示例:

csharp
/// <summary>
/// 接收消息事件处理器
/// <para>机器人接收到用户发送的消息后触发此事件。</para>
/// <para>事件类型:im.message.receive_v1</para>
/// <para>使用时请继承:<see cref="MessageReceiveEventHandler"/></para>
/// <para>文档地址:<see href="https://open.feishu.cn/document/server-docs/im-v1/message/events/receive"/></para>
/// </summary>
[GenerateEventHandler(EventType = FeishuEventTypes.ReceiveMessage,
                      HandlerNamespace = Consts.HandlerNamespace,
                      InheritedFrom = Consts.InheritedFrom)]
public class MessageReceiveResult : IEventResult
{
    [JsonPropertyName("sender")]
    public MessageSender? Sender { get; set; }

    [JsonPropertyName("message")]
    public MessageContent? Message { get; set; }
}

项目结构

Mud.Feishu.EventCallback/
├── Approval/                          # 审批事件
│   ├── ApprovalApprovalUpdatedEvent/  # 审批定义更新
│   ├── ApprovalCcEvent/              # 审批抄送
│   ├── ApprovalInstanceEvent/        # 审批实例
│   ├── ApprovalInstanceTripGroupUpdateEvent/ # 出差审批
│   ├── ApprovalInstanceRemedyGroupUpdateEvent/ # 补卡审批
│   ├── ApprovalTaskEvent/            # 审批任务
│   ├── LeaveApprovalEvent/           # 请假审批
│   ├── OutApprovalEvent/             # 外出审批
│   ├── ShiftApprovalEvent/           # 换班审批
│   └── WorkApprovalEvent/            # 加班审批
├── Organization/                      # 组织架构事件
│   ├── UserCreateEvent/              # 用户创建
│   ├── UserDeleteEvent/              # 用户删除
│   ├── UserUpdateEvent/              # 用户更新
│   ├── DepartmentCreatedEvent/       # 部门创建
│   ├── DepartmentDeletedEvent/       # 部门删除
│   ├── DepartmentUpdateEvent/        # 部门更新
│   ├── CustomAttrUpdateEvent/        # 自定义属性更新
│   ├── EmployeeTypeEnumCreatedEvent/ # 人员类型创建
│   ├── EmployeeTypeEnumDeleteEvent/  # 人员类型删除
│   ├── EmployeeTypeEnumUpdateEvent/  # 人员类型更新
│   ├── EmployeeTypeEnumActivedEvent/ # 人员类型启用
│   └── EmployeeTypeEnumDeActivedEvent/ # 人员类型禁用
├── IM/                               # 即时通讯事件
│   ├── MessageReceiveEvent/          # 消息接收
│   ├── MessageReadEvent/             # 消息已读
│   ├── MessageRecalledEvent/         # 消息撤回
│   ├── MessageReactionCreatedEvent/  # 表情回应创建
│   ├── MessageReactionDeletedEvent/  # 表情回应删除
│   ├── ChatUpdatedEvent/             # 群聊更新
│   ├── ChatDisbandedEvent/           # 群聊解散
│   ├── ChatMemberUserAddedEvent/     # 用户进群
│   ├── ChatMemberUserDeletedEvent/   # 用户出群
│   ├── ChatMemberUserWithdrawnEvent/ # 撤销拉用户进群
│   ├── ChatMemberBotAddedEvent/      # 机器人进群
│   └── ChatMemberBotDeletedEvent/    # 机器人退群
├── Task/                             # 任务事件
│   ├── TaskUpdatedResult.cs          # 任务更新
│   ├── TaskCommentUpdatedResult.cs   # 任务评论更新
│   └── TaskUpdateTenantResult.cs     # 租户任务更新
├── Drive/                            # 云盘事件
│   ├── DriveFileCreatedEvent/        # 文件创建
│   ├── DriveFileDeletedEvent/        # 文件删除
│   ├── DriveFileEditEvent/           # 文件编辑
│   ├── DriveFileReadEvent/           # 文件已读
│   ├── DriveFileTitleUpdatedEvent/   # 文件标题更新
│   ├── DriveFileTrashedEvent/        # 文件回收站
│   ├── DriveFilePermissionMemberAddedEvent/     # 协作者添加
│   ├── DriveFilePermissionMemberAppliedEvent/   # 协作者权限申请
│   ├── DriveFilePermissionMemberRemovedEvent/   # 协作者移除
│   └── DriveNoticeCommentAddEvent/   # 评论新增
├── Bitable/                          # 多维表格事件
│   ├── BitableFieldChangedEvent/     # 字段变更
│   └── BitableRecordChanged/         # 记录变更
├── Attendance/                       # 考勤事件
│   ├── AttendanceUserFlowCreatedResult.cs   # 考勤流水创建
│   └── AttendanceUserTaskUpdatedResult.cs   # 考勤任务更新
└── GlobalUsings.cs                   # 全局引用

依赖项

  • Mud.Feishu.Abstractions - 核心抽象和基础类型
  • Mud.HttpUtils.Generator - 源代码生成器(用于自动生成事件处理器)

相关项目

  • Mud.Feishu - 核心 HTTP API 客户端
  • Mud.Feishu.Abstractions - 事件处理抽象
  • Mud.Feishu.Webhook - Webhook 事件处理
  • Mud.Feishu.WebSocket - WebSocket 实时事件
  • Mud.Feishu.Redis - Redis 分布式去重

文档与资源

许可证

本项目采用 MIT 许可证。详见 LICENSE-MIT 文件。

版权声明

版权所有 © Mud Studio 2026。保留所有权利。

Mud.Feishu 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。

本项目主要遵循 MIT 许可证进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 文件。

不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目开发而产生的一切法律纠纷和责任,我们不承担任何责任!