Install
openclaw skills install @lainxxx/blog-auto-poster-skill多平台文章统一发布与同步工具。支持 CSDN、51CTO、博客园、掘金四个平台。 触发场景:用户需要将文章、博客、Markdown 文件的内容分发或群发到指定平台。 典型指令如:“帮我把这段文字发布到所有平台”、“把这个 MD 文件同步到 CSDN”、“一键群发这篇博客”。
openclaw skills install @lainxxx/blog-auto-poster-skill检查 .env 是否存在且包含目标平台的配置项,如有缺失则引导用户配置。
ls -la .env
grep "CSDN_COOKIES=" .env
grep "51CTO_COOKIES=" .env
grep "CNBLOGS_COOKIES=" .env
grep "JUEJIN_COOKIES=" .env
各平台凭证获取方式见 references/<平台>.md。
模板文件位于 templates/ 目录,提供以下模板供用户选择:
| 模板 | 文件 | 适用场景 |
|---|---|---|
default | templates/default.md | 通用技术文章 |
tool-review | templates/tool-review.md | 工具/软件推荐测评 |
deep-dive | templates/deep-dive.md | 底层原理/源码深度解析 |
comparison | templates/comparison.md | 技术选型对比分析 |
troubleshooting | templates/troubleshooting.md | 踩坑记录/排错指南 |
summary | templates/summary.md | 知识总结/学习笔记 |
引导用户说出文章的大致主题和受众,推荐合适的模板。
与用户确认以下内容:
将正文以 Markdown 格式 写入临时文件:
mkdir -p temp
cat > ./temp/publish.md << 'EOF'
<Markdown 正文>
EOF
按以下顺序逐个发布,失败不中断。每个平台执行后记录状态。
所有命令在 skill 根目录下执行。
内容格式:Markdown(加 --format markdown 让脚本自动转 HTML)
python scripts/csdn_poster.py post \
--title "<标题>" \
--file ./temp/publish.md \
--format markdown \
--tags "标签1,标签2" \
--categories "分类名" \
--publish
可选参数:
--desc "摘要" — 自定义摘要
--type original|reprint|translated — 文章类型
--read-type public|private|fans — 阅读权限
不加 --publish 则存为草稿
成功标志:返回 发布成功! + 链接: https://blog.csdn.net/...
失败:查看 references/csdn.md
内容格式:Markdown(脚本自动转 HTML)
python scripts/51cto_poster.py post \
--title "<标题>" \
--file ./temp/publish.md \
--tags "标签1,标签2"
可选参数:
--type original|reprint|translated — 默认 original
--draft — 存草稿
成功标志:返回 发布成功! + 链接: https://blog.51cto.com/...
失败:查看 references/51cto.md
内容格式:原生 Markdown(博客园 isMarkdown=true,不需要转 HTML)
python scripts/cnblogs_poster.py post \
--title "<标题>" \
--file ./temp/publish.md \
--tags "标签1,标签2"
可选参数:
--category "分类ID" — 多个用逗号分隔
--draft — 存草稿
成功标志:返回 发布成功! + 链接: https://www.cnblogs.com/...
失败:查看 references/cnblogs.md
内容格式:原生 Markdown(掘金的 mark_content 字段原生支持 Markdown)
鉴权方式:仅需 Cookie(无需 CSRF 请求头,只需在 .env 中配置 JUEJIN_COOKIES 即可)
python scripts/juejin_poster.py post \
--title "<标题>" \
--file ./temp/publish.md \
--brief "摘要(50-100 字)"
可选参数:
--tags 标签名1 标签名2 — 传入标签名称(脚本支持常见标签自动映射)--draft-only — 仅存草稿,不发布--category <分类ID> — 分类 ID(默认 0)常用标签(名称自动映射):
| 名称 | ID |
|---|---|
| Python | 6809640408797167623 |
| TypeScript | 6809640543006490638 |
| JavaScript | 6809640407484334093 |
| Vue.js | 6809640445233070094 |
| React | 6809640407484334100 |
| Node.js | 6809640361531539470 |
| CSS | 6809640394175971342 |
| Go | 6809640408797167624 |
| Java | 6809640445233070094 |
| Rust | 6809640495594078216 |
| C++ | 6809640447497994253 |
| Swift | 6809640463633481741 |
| Kotlin | 6809640615584727053 |
| Docker | 6809640445233070095 |
| Spring Boot | 6809641037787561992 |
| AI | 6809640445233070096 |
| DeepSeek | 7467857238493757466 |
| LLM | 7257794499869573175 |
| AIGC | 7197380506562871333 |
| Agent | 7516396389476401162 |
| 前端 | 6809640407484334093 |
| 后端 | 6809640408797167623 |
| Android | 6809640400832167949 |
| iOS | 6809640399544516616 |
| 架构 | 6809640501776482317 |
| 数据库 | 6809640600502009863 |
| 云计算 | 6809640508441231367 |
| 开源 | 6809640419505209358 |
常用分类 ID:
| 名称 | ID |
|---|---|
| 前端 | 6809637767543259144 |
| 后端 | 6809637769959178254 |
| AI | 6809637773935378440 |
| Android | 6809635626879549454 |
| iOS | 6809635627209637895 |
| 开发工具 | 6809637771511070734 |
| 阅读 | 6809637772874219534 |
非常用标签/分类请查阅
references/juejin.md。
发布成功! + 链接: https://juejin.cn/post/...references/juejin.md所有平台执行完毕后,按此格式汇总给用户:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
多平台发布结果汇总
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ CSDN 发布成功 https://blog.csdn.net/...
✅ 51CTO 发布成功 https://blog.51cto.com/...
❌ 博客园 失败 错误信息摘要
✅ 掘金 发布成功 https://juejin.cn/post/...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
失败的平台引导用户查看对应的 references/<平台>.md 了解原因和解决方法。
./temp/publish.md,保留供用户复查.env 中的凭证err_no: 1002,需等待 30 秒以上重试