workbuddy不支持自动日报周报生成与企微推送,需通过api或数据库获取数据,用python脚本定时组装并调用企微接口推送,关键在数据源可靠性、时间范围校验、webhook安全配置及敏感信息过滤。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

WorkBuddy 本身不支持自动日报周报生成和企微推送
WorkBuddy 是钉钉生态内的低代码协作工具,定位是任务协同与轻量流程管理,不提供内置的定时报告生成器,也没有原生企业微信 Webhook 集成能力。如果你在后台看到“日报模板”或“周报填写入口”,那只是人工填报界面,不是自动化出口。
想实现“自动生成 + 自动推送”,必须通过外部服务桥接。核心路径是:让 WorkBuddy 的数据能被读取 → 按规则组装成日报/周报 → 调用企业微信send_message接口推送到指定群或成员。
从 WorkBuddy 导出数据的可行方式只有 API 或数据库直连
WorkBuddy 对外暴露了有限的 OpenAPI(需管理员开通并授权),但文档极简,且/v1/tasks/list等接口默认只返回最近 7 天、最多 100 条任务,不带完整执行日志或工时字段。常见失败场景:
- 调用
/v1/tasks/list?status=done&start_time=xxx返回空,因为没传page_token或时间格式错(必须是毫秒级 Unix 时间戳) - 即使拿到任务列表,
assignee_id是数字 ID,而企业微信通讯录用的是userid字符串,两者无法直接映射 - WorkBuddy 不记录“今日实际耗时”,只存“预估工时”和“完成状态”,日报中“已完成 XX 项,耗时 3.5h”这类内容得靠人工补或另建日志表
更稳定的做法是:在任务完成时,用 WorkBuddy 的「审批通过」或「状态变更」触发器,写一条结构化日志到你自己的 MySQL/PostgreSQL 表里,字段至少包含:user_id、task_title、done_at、actual_hours。这才是后续日报生成的可靠数据源。
使用 draw.io(.drawio 格式)和 SVG 生成兼容 Microsoft Visio 的架构图。当用户需要以下任一场景时触发: - 用于 Visio 或技术文档的架构/系统/网络图 - 带连接标注的分层控制系统图 - 将 draw.io XML 转换为稳定、可嵌入的 SVG - 修复 Visio 或 draw.io 无法打开的故障排查类图表 - 任何需专业级布局且文本可编辑的图表
用 Python 脚本定时组装日报并调企微接口最轻量
不用上 Airflow 或 Jenkins,一个带 cron 的 Python 脚本就能跑通。关键点不在代码多炫,而在三处校验:
- 日期范围必须严格按“自然日”切分:日报用
datetime.today() - timedelta(days=1)到datetime.today(),周报用monday = today - timedelta(days=today.weekday())往前推 - 企微
webhook_url必须带?key=xxx参数,且该 key 在企微后台群机器人设置里启用“仅限群消息”后才有效;发错会返回{"errcode":40014,"errmsg":"invalid webhook url"} - 消息体中的
mentioned_list如果填了非群内成员的userid,整条消息会发送失败,建议初期先用mentioned_list: ["@all"]测试通路
示例片段(伪代码逻辑):
# 查询昨日任务
sql = "SELECT task_title, actual_hours FROM worklog WHERE user_id=%s AND done_at BETWEEN %s AND %s"
rows = db.execute(sql, (uid, yesterday_start, yesterday_end))
<h1>组装 markdown 消息</h1><p>content = f"## {yesterday.strftime('%m/%d')} 工作日报\n"
for title, hours in rows:
content += f"- {title}({hours}h)\n"</p><h1>推送</h1><p>requests.post(wechat_webhook, json={
"msgtype": "markdown",
"markdown": {"content": content},
"mentioned_list": ["@all"]
})</p>
真正卡住落地的不是技术,是数据归属和权限闭环
WorkBuddy 的 API token 有效期默认 2 小时,且不能刷新;企业微信机器人 key 一旦泄露,任何人都能往群里发消息。所以生产环境必须:
- 把 API token 存在环境变量或密钥管理服务(如 AWS Secrets Manager),绝不能硬编码进脚本
- 企微 webhook URL 做二次封装:用 Nginx 反向代理一层,加 IP 白名单和 Basic Auth,避免裸露
- 日报内容里涉及敏感任务名或客户名称,得在 SQL 查询后加一层
if "客户A" in title: title = "[已脱敏]"过滤
很多团队卡在“为什么脚本跑了一周突然不发了”,最后发现是 WorkBuddy 管理员重置了 API 权限,或者企微管理员禁用了那个机器人——自动化链条里,人管的环节越少,越容易持续跑下去。










