@luka-cat-mimi/n8n-nodes-feishu-project
Version:
飞书项目 N8N 集成插件,支持附件管理等功能
211 lines (143 loc) • 8.8 kB
Markdown
# @luka-cat-mimi/n8n-nodes-feishu-project
在 n8n 中轻松操作飞书项目 —— 无需写代码,拖拽即可实现工作项管理自动化。
## 为什么选择这个节点?
| 痛点 | 解决方案 |
|------|----------|
| 飞书项目 API 调用复杂 | **动态表单**:空间、工作项类型自动加载,下拉选择即可 |
| 分页数据获取麻烦 | **一键获取全部**:自动处理分页,返回完整数据 |
| API 限流导致失败 | **批次处理**:自动控制请求频率,避免触发限流 |
| 请求卡死无响应 | **超时保护**:设置超时时间,请求异常及时中断 |
## 安装
```
npm install @luka-cat-mimi/n8n-nodes-feishu-project
```
或在 n8n 社区节点中搜索安装,参考:[社区节点安装指南](https://docs.n8n.io/integrations/community-nodes/installation/)
## 节点概览
本插件包含两个节点:
| 节点 | 类型 | 说明 |
|------|------|------|
| **飞书项目** | 操作节点 | 调用飞书项目 API,支持工作项、空间、用户、工作流等 68 个操作 |
| **监听事件** | 触发器(Webhook) | 接收飞书项目回调事件,按条件触发工作流 |
## 触发器:监听事件
通过 Webhook 接收飞书项目的回调事件来触发工作流,固定使用 **POST** 方法。
### 支持的事件
| 类型 | 事件(编码) |
|------|------|
| 工作项(100) | 创建(1001)/ 删除(1002)/ 恢复(1004)/ 终止(1005)/ 模版升级(1006)/ 修改字段(1009) |
| 节点(200) | 完成(2001)/ 删除(2002)/ 恢复(2003)/ 回滚(2004)/ 修改估分与排期(2005)/ 修改负责人(2006)/ 修改实际工时(2007)/ 多人确认流转(2009) |
| 状态(300) | 状态变更(3001) |
| 子任务(400) | 新建(4001)/ 删除(4002)/ 完成(4003)/ 取消完成(4004)/ 修改负责人(4005)/ 修改估分(4006)/ 修改排期(4007)/ 修改实际工时(4008)/ 修改字段(4009) |
| 空间(500) | 添加成员(5001)/ 删除成员(5002)/ 完成工作移交(5003)/ 拒绝工作移交(5004) |
| 插件(600) | 安装(6001)/ 卸载(6002)/ 更新(6003)/ 购买(6004) |
「监听事件」支持通配符 `*`(所有事件),默认选中。
### 配置回调地址
将节点生成的 Webhook URL 填入飞书项目对应的回调地址中:
1. 工作项 / 节点 / 状态 / 子任务 / 空间等业务事件(100~500):**开发者后台 → 插件功能 → 插件构成 添加构成 → 监听事件**
2. 插件安装 / 卸载 / 更新 / 购买等插件事件(600):**开发者后台 → 插件发布 → 插件事件订阅**
### 验证签名(可选)
开启「验证签名」后填入回调 Token,节点会按 `sha256(plugin_id + request_time + token)` 计算签名并与请求体 `signature` 比对,校验失败返回 401。
### 过滤选项(Options)
支持对回调进行多级过滤,判断顺序为:**签名 → 来源类型 → 监听事件 → 飞书项目空间 → 工作项类型**,任一不匹配则忽略(返回 200 但不触发工作流)。
| 选项 | 说明 |
|------|------|
| **允许来源类型** | 多选:普通用户操作(normal)、OpenAPI(openapi)、系统行为(system)、自动化(automation)。按 `source` 匹配 |
| **允许飞书项目空间** | 动态多选,默认通配符。按 `data.project_key` 匹配 |
| **允许的工作项类型** | 字符串,支持逗号分隔、JSON 数组或表达式数组(如 `["issue","story"]`、`issue,story`、`{{ ["issue","story"] }}`),默认通配符 `*`。按 `data.work_item_type_key` 匹配;事件不含该字段时视为通过 |
## 支持的功能(68 个操作)
<details>
<summary><b>工作项管理(16 个)</b>- 创建、更新、删除、批量操作...</summary>
- 创建工作项 / 查询工作项详情 / 更新工作项 / 删除工作项
- 批量更新工作项 / 终止工作项 / 获取工作项元数据 / 获取工作项操作记录
- 获取工作项任务结果 / 批量查询评审信息 / 查询评审结论 / 更新评审
- 创建工时记录 / 获取工时记录列表 / 更新工时记录 / 删除工时记录
</details>
<details>
<summary><b>工作项搜索(4 个)</b>- 单空间搜索、复杂条件、全局搜索...</summary>
- 单空间工作项搜索 / 复杂条件搜索 / 全局搜索 / 关联工作项搜索
</details>
<details>
<summary><b>工作项配置(9 个)</b>- 字段管理、关联配置...</summary>
- 获取/更新工作项基础信息
- 创建/获取/更新工作项字段
- 创建/获取/更新/删除工作项关联配置
</details>
<details>
<summary><b>空间管理(6 个)</b>- 空间列表、详情、成员...</summary>
- 获取空间列表 / 获取空间列表详情 / 获取空间详情
- 获取空间业务线 / 获取空间工作项类型列表
- 获取空间团队成员(支持分页、Return All、自动获取用户详情)
</details>
<details>
<summary><b>空间关联(4 个)</b>- 工作项关联绑定...</summary>
- 获取关联规则列表 / 绑定工作项关联 / 解绑工作项关联 / 获取关联工作项列表
</details>
<details>
<summary><b>流程与节点(5 个)</b>- 流程节点操作、状态变更...</summary>
- 查询流程节点 / 更新流程节点 / 操作流程节点 / 变更工作项状态 / 获取WBS视图
</details>
<details>
<summary><b>子任务(5 个)</b>- 子任务 CRUD...</summary>
- 创建子任务 / 获取子任务详情 / 更新子任务 / 操作子任务 / 删除子任务
</details>
<details>
<summary><b>视图管理(8 个)</b>- 视图创建、更新...</summary>
- 获取视图列表 / 创建条件视图 / 更新条件视图 / 创建固定视图
- 更新固定视图 / 删除视图 / 获取全景视图 / 获取视图工作项列表
</details>
<details>
<summary><b>评论管理(4 个)</b>- 评论 CRUD,支持多种对象与内容类型...</summary>
- 添加评论 / 查询评论 / 更新评论 / 删除评论
- 支持评论对象类型:工作项(WORKITEM)、工作项字段(WORKITEMFIELD)、子评论(CHILDCOMMENT)
- 支持内容类型:纯文本(TEXT)、富文本(RICHTEXT)、附件(FILE)
- 查询评论支持分页方向、返回富文本 Markdown
</details>
<details>
<summary><b>附件管理(4 个)</b>- 工作项附件上传下载...</summary>
- 添加附件 / 下载附件 / 删除附件
- 上传文件或富文本图片(通用上传,主要用于富文本中插入图片)
</details>
<details>
<summary><b>文件管理(2 个)</b>- 评论附件上传下载...</summary>
- 上传文件(小于 20MB,用于评论附件或富文本图片,上传后需绑定到业务)
- 下载文件(通过 file_token 下载已绑定业务的文件,支持二进制输出)
</details>
<details>
<summary><b>用户管理(2 个)</b>- 用户信息、用户搜索...</summary>
- 获取用户信息 / 搜索租户内的用户列表
</details>
<details>
<summary><b>其他(3 个)</b>- 流程模板、角色、群组、度量...</summary>
- 创建流程模板 / 获取流程角色列表 / 机器人加入聊天 / 获取图表详情
</details>
## 快速开始
### 1. 获取凭证
| 凭证 | 获取方式 |
|------|----------|
| **插件 ID / 密钥** | 飞书项目管理后台 → 插件管理 → 创建或查看插件 |
| **用户 ID** | 飞书项目空间左下角 → 双击个人头像 |
| **Host** | 通常为 `project.feishu.cn` |
### 2. 配置凭证
在 n8n 中创建 **飞书项目 API** 凭据:
| 字段 | 示例 |
|------|------|
| 飞书项目 Host | `project.feishu.cn` |
| 插件 ID | `MII_0000000000000000` |
| 插件密钥 | `AB92E56666CT8D60704743BF69C92C16` |
| 用户 ID | `7568516887894324252` |
| 鉴权模式 | 默认开启强制鉴权(`1`),严格按用户 ID 校验权限;设为 `0` 可切换兼容模式 |
### 3. 评论附件工作流示例
在评论中插入附件的典型流程:
1. **文件 → 上传文件**:上传二进制文件,获取 `file_token`
2. **评论 → 添加评论**:内容类型选「附件 (FILE)」,填入上一步的 `file_token`
3. **文件 → 下载文件**:文件绑定到评论后,可用 `file_token` 下载
> 上传的文件在未绑定到评论等业务前无法下载,超过 7 天未绑定会自动删除。
### 4. 开始使用
拖入节点 → 选择资源和操作 → 填写参数 → 执行!
## 注意事项
- 确保插件具有所需 API 的访问权限
- [错误码查询](https://project.feishu.cn/b/helpcenter/1p8d7djs/4bsmoql6)
## 支持
- 邮箱:luka.cat.mimi@gmail.com
- [问题反馈](https://github.com/luka-n8n-nodes/n8n-nodes-feishu-project/issues)
## 许可证
MIT License