openlark-workflow 0.17.0

OpenLark 工作流模块 - 提供飞书任务/审批/看板 API
Documentation

OpenLark 工作流模块

OpenLark SDK 的工作流模块,提供飞书任务、审批和看板 API 的完整访问。 Communication / Workflow helper 分层边界见 docs/communication-workflow-helper-boundaries.md

功能特性

  • 任务管理: 创建、更新、删除、查询待办事项
  • 审批流程: 审批定义、审批实例管理,以及高频审批任务 helper
  • 看板管理: 看板创建、任务卡片管理
  • 协作支持: 添加执行者、关注者、提醒
  • 版本支持: 支持 task v1/v2,以及 approval v4 helper 场景

使用示例

use openlark_workflow::{
    ApprovalTaskAction, ApprovalTaskQuery, WorkflowService, WorkflowTaskListQuery,
    WorkflowTaskMutation,
};
use openlark_core::config::Config;

# async fn example() -> Result<(), Box<dyn std::error::Error>> {
let config = Config::builder()
    .app_id("your_app_id")
    .app_secret("your_app_secret")
    .build();

let workflow_service = WorkflowService::new(config);

// 列取任务清单中的任务
let tasks = workflow_service
    .list_tasks_all(WorkflowTaskListQuery::for_tasklist("tasklist_guid"))
    .await?;

// 更新任务
let result = workflow_service
    .mutate_task(
        "task_guid",
        WorkflowTaskMutation::new()
            .summary("完成项目文档")
            .priority(3),
    )
    .await?;

// 处理待审批任务
let approval_tasks = workflow_service
    .query_approval_tasks(
        ApprovalTaskQuery::new("ou_example_user", "1")
            .user_id_type("open_id")
            .status("Todo"),
    )
    .await?;
if let Some(task) = approval_tasks.first() {
    let _ = workflow_service
        .approve_task(
            ApprovalTaskAction::new(
                task.approval_code.clone(),
                task.instance_code.clone(),
                "ou_example_user",
                task.task_id.clone(),
            )
            .user_id_type("open_id")
            .comment("同意"),
        )
        .await?;
}
# Ok(())
# }