Coze 实战 · 第9课 / 共 10 课 · ≈40 min · 开源部分可用
P08 · 发布 · PAT · OpenAPI 调用工作流
上级:实战总目录 · 本地:http://localhost:8888。
把调试好的智能体/应用「发布」出去,创建个人访问令牌(PAT),用 curl 调 /v1/workflow/run,再用 crontab 做每日调度。
🎯 第9课目标发布智能体/应用(勾选 API + Chat SDK),创建 PAT,抄出 workflow_id,用 curl 调通
/v1/workflow/run,并配置外部 crontab(开源无内置定时)。★
为什么第 9 课才发布?
学习路径说明
发布与 OpenAPI 调用需要已有可运行的工作流(P01 试运行通过)。否则 curl 调了也是空跑或 404。
本步目的 / 作用:开源版发布渠道:主要是 API 与 Chat SDK。没有微信、飞书机器人、应用商店等社交/商业渠道 — 页面上看不到是正常的(
IS_OPEN_SOURCE 裁剪)。开源版没有内置工作流定时触发(Start 节点 Cron 被关掉)。「每天 9 点跑日报」要靠本课第 5 步的外部 crontab 调 OpenAPI。
0
前置检查
本步目的 / 作用:确认上一课产物(登录态、模型、智能体等)已就绪,本课才不会踩空。
- □ P01 工作流
daily_competitor_report试运行成功 - □ 终端能执行
curl(macOS / Linux 自带) - □ 已登录
http://localhost:8888
1
发布:勾选 API + Chat SDK 渠道
本步目的 / 作用:草稿只在 IDE 里能玩;发布后 OpenAPI / SDK 才能调已上线版本。
路径 A · 发布智能体(P02 的 Bot)
- 项目开发 → 打开你的智能体(如「竞品分析」)
- 看页面右上角,找到蓝色或主色按钮 发布 → 单击
- 进入发布页 / 抽屉
- 「发布记录」或「版本说明」填:
实战教程首发 - 找到「选择发布平台」或「发布渠道」列表
- 勾选 API(应显示「已授权」或类似绿字)
- 勾选 Chat SDK(同样应已授权)
- 不要找微信、抖音、飞书机器人 — 开源版没有
- 点页面右上角或底部 发布 确认
图 1:智能体发布 — API / Chat SDK 已勾选。
数字 1→2→3 = 操作顺序 · 请按编号依次点击 / 填写
图 2:发布面板总览 — 渠道选择与发布记录。
数字 1→2→3 = 操作顺序 · 请按编号依次点击 / 填写
路径 B · 发布应用(含 P01 工作流 · 调 API 通常走这条)
- 项目开发 → 打开应用「竞品日报实战」
- 进入应用 IDE(/project-ide/...)
- 右上角 发布 → 同上勾选 API + Chat SDK
- 确认发布
图 3:应用侧发布入口与渠道勾选。
数字 1→2→3 = 操作顺序 · 请按编号依次点击 / 填写
图 4:API 渠道配置说明(若有)。
数字 1→2→3 = 操作顺序 · 请按编号依次点击 / 填写
✅ 发布成功 toast / 发布记录里出现新版本;渠道 API 为已启用状态。
2
设置 → API 授权 → 创建 PAT
本步目的 / 作用:OpenAPI 请求头需要
Authorization: Bearer <PAT>。PAT = Personal Access Token,个人访问令牌。- 在任意工作空间页面(如项目开发),看左下角你的头像
- 左键单击头像 → 弹出菜单
- 点 设置 或 账号设置
- 弹出设置窗口;看左侧标签
- 点 API 授权(英文可能是 API Authorization)
- 右侧点 添加新令牌(空状态时中间也可能有大按钮)
- 名称填:
local-cron(方便以后辨认) - 点 创建 / 确认
- 弹窗显示一长串 token → 立刻全选复制到密码管理器或本地安全笔记
- 关闭弹窗(token 明文通常只显示一次)
图 5:左下角头像 → 设置入口。
数字 1→2→3 = 操作顺序 · 请按编号依次点击 / 填写
图 6:账号设置弹窗 — 左侧多个 Tab。
数字 1→2→3 = 操作顺序 · 请按编号依次点击 / 填写
图 7:API 授权 Tab — 添加新令牌。
数字 1→2→3 = 操作顺序 · 请按编号依次点击 / 填写
安全 · 必读
不要把 PAT 写进前端 HTML、公开 Git 仓库或本教程网页里。泄露后立即到本页删除旧令牌并新建。
3
从浏览器 URL 抄 workflow_id
本步目的 / 作用:
POST /v1/workflow/run 的 JSON 里必须带 workflow_id。最稳的拿法:打开工作流画布看地址栏。- 打开应用「竞品日报实战」→ 左侧资源树 → 点工作流
daily_competitor_report - 进入画布编辑页
- 看浏览器地址栏完整 URL
- 找到路径里
/workflow/后面那一串纯数字 — 那就是 workflow_id - 复制到记事本,下面 curl 要用
# 示例 URL(数字换成你自己的)
http://localhost:8888/space/7490000000000000000/project-ide/7490000000000000001/workflow/7662919178956832768
# ↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑
# 这就是 workflow_id
图 8:工作流编辑页 — 从 URL 末段数字抄 workflow_id。
数字 1→2→3 = 操作顺序 · 请按编号依次点击 / 填写
| curl 参数 | 从哪来 | 本教程示例 |
|---|---|---|
workflow_id | URL 中 /workflow/ 后数字 | 7662919178956832768(勿照抄,用你自己的) |
parameters.report_date | P01 开始节点输出变量名 | 2026-07-16 或 $(date +%F) |
parameters.lark_hint | P01 开始节点变量 | 增长情报群 |
Authorization | 步骤 2 创建的 PAT | Bearer <你的PAT> |
参数名大小写
parameters 里的 key 必须与工作流「开始」节点定义的变量名完全一致(如 report_date 不是 report_data)。4
终端 curl 调用工作流(复制改三处)
本步目的 / 作用:模拟外部系统(cron、后端服务)调 Coze,无需打开浏览器。
- 打开终端(macOS:Spotlight 搜 Terminal)
- 复制下面脚本
- 把
COZE_PAT换成步骤 2 的令牌 - 把
WF_ID换成步骤 3 的数字 - 粘贴到终端回车执行
export COZE_PAT='粘贴你的PAT_不要带尖括号'
export WF_ID='7662919178956832768' # 换成你从 URL 抄的 workflow_id
curl -sS -X POST 'http://localhost:8888/v1/workflow/run' \
-H "Authorization: Bearer ${COZE_PAT}" \
-H 'Content-Type: application/json' \
-d "{
\"workflow_id\": \"${WF_ID}\",
\"parameters\": {
\"report_date\": \"$(date +%F)\",
\"lark_hint\": \"增长情报群\"
}
}" | python3 -m json.tool
✅ 验收:HTTP 200;JSON 里有
code 成功字段;data 或输出里能看到 report / lark_status 等。若 P01 接了 httpbin / 真飞书,对应侧也有记录。| HTTP / 报错 | 原因 | 处理 |
|---|---|---|
| 401 Unauthorized | PAT 错、过期、复制不完整 | 重新创建 PAT;检查 Bearer 后有空格 |
| 找不到工作流 | 未发布或 workflow_id 错 | 回步骤 1 发布;重抄 URL 数字 |
| 参数无效 | 开始节点变量名不一致 | 打开 P01 开始节点核对 key |
| 连接拒绝 | Coze 没启动 | coze-studio 根目录 make web |
5
crontab 每日定时(替代内置 Cron)
本步目的 / 作用:原因:开源版工作流画布里的「定时触发」不可用。Linux/macOS 用系统 crontab 每天调同一个 curl 即可。
- 终端输入
crontab -e回车(首次可能让你选编辑器,选 nano 最简单) - 在文件末尾新起一行,粘贴下面(改 PAT 和 WF_ID)
- 保存退出(nano:Ctrl+O 保存,Ctrl+X 退出)
- 用
crontab -l确认规则已写入
# 每天上午 09:00 跑竞品日报(PAT 和 workflow_id 换成你的)
0 9 * * * curl -sS -X POST 'http://localhost:8888/v1/workflow/run' \
-H "Authorization: Bearer 你的PAT粘贴在这里" \
-H 'Content-Type: application/json' \
-d "{\"workflow_id\":\"你的WF_ID\",\"parameters\":{\"report_date\":\"$(date +\%F)\",\"lark_hint\":\"增长情报群\"}}" \
>> /tmp/coze-comp-daily.log 2>&1
注意 crontab 里的 %
crontab 中
date 的格式串要写 \%F(反斜杠转义),否则 cron 会报错。上面示例已写好。
电脑关机则 cron 不会跑;生产环境应部署在常开服务器,并保证
localhost:8888 对该机器可达(或改成内网域名)。6
验收清单
本步目的 / 作用:用清单自检本课是否真正做完;全部勾上再进入下一课。
- □ 智能体或应用发布成功,渠道含 API + Chat SDK
- □ 确认开源版无社交渠道,未误找飞书机器人发布
- □ 设置 → API 授权 → 已创建 PAT 并安全保存
- □ 从工作流 URL 正确抄下 workflow_id
- □ 终端 curl 至少成功跑通 1 次
- □(可选)crontab 已写入每日 9:00 规则
全部打勾 → 下一课 P09 Chatflow 与 Chat SDK(第 10 课 · 完结篇)。