mcpField
T
todoist-rs

todoist-rs

github.com/alphaonedev生产力42 次安装
代码仓库

关于 todoist-rs

通过 Todoist REST API 管理 Todoist 的 Rust 客户端技能,支持任务和项目操作、筛选器、提醒、标签及生产力统计,可用于自动化任务工作流。

主要功能

  1. 01创建、读取、更新和删除任务
  2. 02管理项目与标签
  3. 03使用筛选器查询任务
  4. 04设置截止日期和提醒
  5. 05获取 Karma 与活动统计

适用场景

  1. 01根据请求添加任务
  2. 02按日程查看逾期任务
  3. 03将 Todoist 项目与其他工具同步

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/alphaonedev/openclaw-graph --skill todoist-rs

安装后在 Claude Code 中输入/todoist-rs确认已加载。

详细介绍

todoist-rs

用途

此技能可通过基于 Rust 的客户端与 Todoist API 交互,以编程方式管理任务、项目、标签、筛选器、提醒和 Karma。将其与 Todoist 的 REST API 集成,可实现生产力工作流自动化。

适用场景

可将此技能用于基于 GTD 的任务管理,例如根据用户查询添加任务、与其他工具同步项目,或通过 API 调用处理提醒。适用于需要自动化的场景,例如每日任务回顾,或为生产力应用设置 IFTTT/Zapier 触发器。

主要功能

  • 对任务执行 CRUD 操作:使用 Todoist 的 API 端点创建、读取、更新和删除任务。
  • 管理项目和标签:添加、重命名或归档项目;为任务分配标签。
  • 处理筛选器和提醒:使用自定义筛选器查询任务;设置到期日期和提醒。
  • 访问 Karma 和生产力统计数据:获取用户的 Karma 分数和活动日志。
  • API 集成:通过 Webhook 支持 IFTTT/Zapier,并使用 Todoist API 触发事件。

使用模式

使用环境变量中的 API 密钥初始化 Todoist 客户端,然后串联方法调用来执行操作。务必先处理身份验证。使用 CLI 时,可将 Rust 库封装在脚本中;编写代码时,可导入 crate 并使用异步方法。在函数调用中直接传入任务内容或项目 ID 等参数。上线前请先在开发环境中测试,以避免触发速率限制。

常用命令/API

通过 todoist-rs crate 使用 Todoist API 端点。使用 $TODOIST_API_KEY 设置 API 密钥。示例代码片段:

  • 添加任务:

    use todoist::Todoist;
    let client = Todoist::new(std::env::var("TODOIST_API_KEY").unwrap());
    client.add_task("Buy milk", Some("Shopping")).await;
    
  • 使用筛选器获取任务:

    let tasks = client.get_tasks(&[("filter", "overdue")]).await.unwrap();
    for task in tasks { println!("{}", task.content); }
    
  • 更新项目: 使用 PUT /projects/{id} 端点;代码如下:

    client.update_project(123, "New Project Name").await;
    
  • 常见 CLI 标志(若封装为工具):--api-key $TODOIST_API_KEY --project-id 123 --task "Do something"。

  • 配置格式:将 API 密钥存储在 .env 文件中,格式为 TODOIST_API_KEY=your_token,然后使用 std::env::var 加载。

集成说明

在 Todoist API 事件(例如创建新任务)上设置 Webhook,以集成 IFTTT/Zapier。使用此技能的 API 调用触发操作:对于 IFTTT,指向 POST /tasks;对于 Zapier,在 Zapier 中使用 Todoist 应用以及此技能的方法。通过 JSON 负载传递任务 ID 等数据。确保在环境变量中安全处理 API 密钥,并使用示例事件测试集成,以验证数据流。

错误处理

请求前请检查 $TODOIST_API_KEY,以避免 401(未授权)等 API 错误。在代码中使用指数退避处理速率限制(例如 429 状态)。使用 Rust 的 Result 类型传播错误:

match client.add_task("Task", None).await {
    Ok(_) => println!("Success"),
    Err(e) => eprintln!("Error: {}", e),
}

记录详细错误(例如网络故障),并重试暂时性问题。验证项目 ID 等输入,以避免 404 错误。

具体使用示例

  1. 添加带标签的任务:当用户说“添加一个购物任务”时,使用此技能在“Shopping”项目中创建任务:初始化客户端,调用 client.add_task("Buy groceries", Some("Shopping")).await,然后向用户确认。
  2. 查询逾期任务:对于每日提醒,获取逾期任务:使用 client.get_tasks(&[("filter", "overdue")]).await,遍历结果,并向用户发送任务详情。

图关系

  • 相关领域:生产力(例如 gtd 技能)、任务管理(例如其他待办应用)、API 客户端(例如 REST API 封装)。
  • 关联内容:用于自动化的 IFTTT/Zapier 集成,以及用于协作工具的社区集群技能。

评论

支持 Markdown