摘要:本文详细记录了在 OpenClaw 中配置飞书(Feishu)定时任务的完整过程,包括常见错误、排查方法和正确配置方式。如果你也遇到"定时任务不执行"、"消息发不出去"的问题,这篇文章能帮你快速解决。


一、问题背景

在使用 OpenClaw 配置飞书群聊定时任务时,遇到了以下问题:

  1. 定时任务创建了,但到时间不执行
  2. 任务显示"已执行",但群里没收到消息
  3. 各种报错信息看不懂,不知道如何排查

经过一下午的调试和日志分析,终于找到了所有坑点。本文将完整记录整个排查过程和解决方案。


二、环境信息

  • OpenClaw 版本:2026.3.8
  • 渠道:飞书(Feishu)群聊
  • 任务类型:一次性定时任务(at)

三、错误排查全过程

错误 1:未指定目标聊天 ID

错误命令

openclaw cron add --name "提醒" --at "2026-03-12T17:13:00+08:00" --message "该上厕所了"

错误日志

{
  "error": "Delivering to Feishu requires target <chatId|user:openId|chat:chatId>",
  "reason": "permanent error"
}

问题分析
飞书渠道必须明确指定消息发送目标,不能依赖默认的 "channel": "last" 配置。

解决方案
添加 --channel feishu--to 参数:

--channel feishu --to "chat:群聊ID"

错误 2:Feishu 账户配置错误

错误命令

openclaw cron add --name "提醒" --at "2026-03-12T17:30:00+08:00" \
  --channel feishu --to "chat:oc_xxx" \
  --message "该吃冰淇淋了"

错误日志

{
  "error": "Error: Feishu account "default" not configured",
  "reason": "permanent error"
}

问题分析
OpenClaw 的飞书配置中,账户名是 "main",但定时任务默认使用 "default" 账户。需要在命令中明确指定账户。

查看当前飞书账户配置

# 查看 openclaw.json 中的 channels.feishu.accounts 配置
cat ~/.openclaw/openclaw.json | grep -A 20 '"feishu"'

解决方案
添加 --account main 参数(账户名根据你的配置调整):

--account main

错误 3:时间格式错误

错误命令

openclaw cron add --at "+1m" ...
openclaw cron add --at "17:30" ...

错误信息

Error: Invalid --at; use ISO time or duration like 20m

问题分析
--at 参数要求 ISO 8601 时间格式(带时区)或纯持续时间(如 20m),不支持 +1mHH:MM 格式。

解决方案
使用完整的 ISO 时间格式:

--at "2026-03-12T17:30:00+08:00"

或者使用纯持续时间(从当前时间开始计算):

--at "20m"  # 20 分钟后

四、正确配置方式(最终版)

完整命令模板

openclaw cron add \
  --name "任务名称" \
  --at "2026-03-12T17:40:00+08:00" \
  --account main \
  --channel feishu \
  --to "chat:oc_1f179c606f60946f0a411a786b2df6a1" \
  --message "🍦 该吃冰淇淋啦!享受甜蜜时刻~" \
  --delete-after-run

参数详解

参数 必填 说明 示例
--name 任务名称 "吃冰淇淋提醒"
--at 执行时间(ISO 格式) "2026-03-12T17:40:00+08:00"
--account 飞书账户名 main(根据配置)
--channel 渠道类型 feishu
--to 目标 ID chat:群聊 IDuser:用户 OpenID
--message 消息内容 "提醒内容"
--delete-after-run 执行后自动删除 (一次性任务推荐)

目标 ID 格式

  • 群聊chat:oc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • 私聊user:ou_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

五、调试技巧

1. 查看任务列表

openclaw cron list

输出示例:

ID                                   Name          Schedule                    Next    Status
799a799c-ebaa-4460-b821-c42850992a19 吃冰淇淋提醒   at 2026-03-12 09:30Z        in 3m   idle

2. 查看任务详情

cat ~/.openclaw/cron/jobs.json

3. 查看执行日志

# 查看最近的 cron 相关日志
tail -100 /tmp/openclaw/openclaw-2026-03-12.log | grep -i cron

# 查看特定任务的日志
tail -100 /tmp/openclaw/openclaw-2026-03-12.log | grep "任务 ID"

4. 常见错误关键词

# 搜索错误日志
grep -E "Delivering to Feishu|Feishu account.*not configured|cron.*error" /tmp/openclaw/*.log

六、进阶配置

循环任务(每天执行)

openclaw cron add \
  --name "每日晨报" \
  --cron "0 8 * * *" \
  --account main \
  --channel feishu \
  --to "chat:oc_xxx" \
  --message "☀️ 早上好!新的一天开始啦~" \
  --tz "Asia/Shanghai"

带模型配置的任务

openclaw cron add \
  --name "AI 日报" \
  --at "2026-03-12T18:00:00+08:00" \
  --account main \
  --channel feishu \
  --to "chat:oc_xxx" \
  --message "请帮我总结一下今天的 AI 热点新闻" \
  --model "bailian/qwen3.5-plus" \
  --delete-after-run

七、常见问题 FAQ

Q1: 任务创建了但没执行?

A: 检查日志,看是否有 cron: job addedcron: timer armed 日志。如果没有,可能是 Gateway 需要重启。

Q2: 任务执行了但没收到消息?

A: 检查日志中的 error 字段,常见原因是:

  • 未指定 --to 参数
  • --account 账户名错误
  • 飞书 Bot 权限不足

Q3: 如何获取飞书群聊 ID?

A: 在飞书群聊中,群 ID 通常以 oc_chat: 开头。可以通过以下方式获取:

  1. 查看 OpenClaw 消息元数据
  2. 在飞书开发者后台查看
  3. 使用 openclaw status 查看当前会话信息

Q4: 任务执行后想保留记录?

A: 去掉 --delete-after-run 参数,任务会保留在列表中(状态变为已执行)。


八、总结

配置 OpenClaw 飞书定时任务的关键点:

  1. 必须指定 --account(和你的飞书账户配置一致)
  2. 必须指定 --channel feishu
  3. 必须指定 --to(chat:群聊 ID 或 user:用户 OpenID)
  4. 时间格式用 ISO 8601(带时区)
  5. 查看日志排查问题/tmp/openclaw/*.log

按照这个配置,定时任务应该能正常工作了。如果还有问题,欢迎在评论区交流!


参考资料

如果这篇文章帮到了你,欢迎点赞、收藏、转发!🍊

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐