Install
openclaw skills install wechat-daily-article微信公众号每日文章自动创作技能。搜索热点 → 撰写SEO优化文章 → 生成配图 → 上传草稿箱。含爆款标题模板、内容类型模板、搜一搜SEO优化。
openclaw skills install wechat-daily-article自动化工作流,覆盖从热点发现到草稿箱保存的完整环节。
搜索热点 → 选题诊断 → 写文章(HTML)→ 搜索配图 → 保存草稿
用 web_search 搜索以下关键词组合,获取当日热点:
「今日旅游热点」「今日美食热点」「小红书旅游爆款笔记」「抖音美食热门」
从微博、小红书、抖音、知乎等平台收集热度最高的话题。旅游和美食方向优先。
写文章前,对照以下问题检查选题和标题,发现问题必须调整:
❌ 已踩坑,避开这些模式:
✅ 好选题的自检标准:
核心公式:地域 + 数字 + 情绪刺激 + 好奇缺口
| ❌ 旧版(太平) | ✅ 升级版(爆款) |
|---|---|
| 成都美食|本地人私藏的7条美食街 | 成都人嘴太严了!这7条街的馆子,连出租车司机都偷偷去 |
| 4月追花指南,全网爆火的赏花目的地 | 今年4月,全网博主都在偷偷去这几个地方拍花海 |
| 厦门3天2夜攻略,本地人带路 | 不是鼓浪屿!厦门本地人私藏的6个小众目的地,99%游客不知道 |
标题模板(直接套用,替换方括号内容):
① [地名]人嘴太严了!这X个[品类],连[特定人群]都[惊人行为]
② 今年[季节],全网[都在做同一件事]的地方,[悬念结尾]
③ 不是[热门]![地名]这X个小众目的地,[反差结果]
④ [地名]|不是[表象],[真实情况]的[品类],本地人[行为]
⑤ [数字]个[品类],[情绪词]:[具体描述](第X个美到窒息/好吃到哭)
禁止出现的标题模式:
❗ 搜一搜是公众号长尾流量的最大入口。一篇好文章在搜一搜可以持续3-6个月带来阅读,而爆款只有1-2周。
搜一搜流量目前仅占2.6%,优化空间巨大。目标:提升到10%+。
标题必须包含:地域词 + 品类词 + 需求词
✅ 正确示例:
「成都美食|本地人私藏的7条美食街,全是烟火气!」
↑地域 ↑品类 ↑需求(宝藏/私藏=好奇心)
「五一出游:避开人挤人的6个小众目的地,最后一个没人知道」
↑时效 ↑地域词 ↑品类词 ↑需求词
❌ 错误示例(没有搜索关键词):
「这家店真的很好吃」— 地域和品类都不明确,搜一搜无法匹配
「我的旅行日记」— 太泛,没有任何关键词
高搜索量关键词库(旅游美食类):
地域:成都/重庆/杭州/西安/大理/丽江/厦门/青岛/长沙/广州/上海/北京…
品类:美食/小吃/餐厅/火锅/烧烤/咖啡/甜品/景点/民宿/酒店/一日游/自驾
需求:美食推荐/必吃/打卡/拍照/小众/冷门/人少/宝藏/私藏/本地人/攻略/路线
时间:五一/清明/端午/暑假/周末/春季/夏季/春节/圣诞
第一段(开头50字内)必须出现:[地域]+[品类] 关键词组合
<!-- ✅ 正确:开头即埋词 -->
<p>成都有条巷子,藏着7家「土著才知道」的馆子,连出租车司机换班都要先去吃一碗。</p>
<!-- ❌ 错误:开头没有关键词,前100字都被浪费 -->
<p>旅行的意义是什么?大概是在陌生的地方找到惊喜……(泛泛而谈,搜不到)</p>
正文中多处长尾词:每个章节至少出现1次[地域]+[品类]组合
<hr>
<p><em>关注【镜头逃亡·旅食记】,用镜头记录旅途,用味蕾丈量世界。</em></p>
<p><strong>#旅行 #美食 #探店 #打卡 #[具体地域] #[具体品类]</strong></p>
<p>转发给朋友,TA会感谢你!👇</p>
结尾行动钩子(必须加):
转发给朋友,TA会感谢你!👇你身边有朋友计划去[地名]吗?转发给他,TA会感谢你!标签格式说明:
示例:
<p><strong>#旅行 #美食 #探店 #打卡 #成都 #美食推荐 #成都美食</strong></p>
兼顾爆款 + 搜索的标题模板:
[地域]+[数字]+[品类]+[反差/情绪词]
示例:成都人私藏的7条美食街,连本地人都偷偷去(地域+数字+品类+反差)
[五一/端午/暑假]+[地域]+[品类]+[需求]
示例:五一成都周边5个小众目的地,五一出游客必收藏(时效+地域+品类+需求)
[地域]+[品类]|[一句话核心价值]
示例:成都美食|本地人常去的7条街,好吃程度外地人不知道(地域+品类+价值)
写完文章后,对照检查:
反常识开头:
"大家都去[热门地],[我]却偏偏去了[小众地],结果……[意外结局]"
共鸣场景开头:
"[具体场景描述,带日期/地点/人物],这一刻我突然明白……"
数据冲击开头:
"[惊人数字],[某个现象],[谁]却在悄悄……"
好奇缺口开头:
"[普遍认知]?错了![地名]人其实……"
写文章前先判断选题适合哪种内容类型。详见 references/content-types.md,包含6种内容类型的结构模板和开头写法示例。
6种内容类型速查:
| 类型 | 适合场景 | 核心特点 |
|---|---|---|
| 🎬 故事叙事型 | 有事件/人物/转折 | 第一人称,像短篇小说 |
| 📋 清单攻略型 | 目的地合集/榜单 | 信息密度高,收藏驱动 |
| ⚡ 对比揭秘型 | 网红打假/热门vs小众 | 制造冲突,引发辩论 |
| 🌿 沉浸体验型 | 目的地探访/美食 | 画面感强,文字即画面 |
| 💬 人物访谈型 | 店主故事/本地人 | 有声音有态度 |
| 📊 数据盘点型 | 年度总结/榜单 | 用数字说话 |
🌸 一、xxx🌼 说到四月...<li>🦐 必吃推荐:...</li><!-- 封面占位 -->
<p><img src="COVERIMG_URL" /></p>
<h2>🌸 一、[章节1标题]</h2>
<p>🌼 [内容]</p>
<h2>🍜 二、[章节2标题]</h2>
<p>🥟 [内容]</p>
<!-- ... 3-4个章节 ... -->
<hr>
<p><em>关注【镜头逃亡·旅食记】,用镜头记录旅途,用味蕾丈量世界。</em></p>
<p><strong>#旅行 #美食 #探店 #打卡</strong></p>
在 HTML 正文中插入网络图片 URL(脚本会自动下载并上传):
| 占位符 | 说明 |
|---|---|
<p><img src="COVERIMG_URL" /></p> | 封面图(建议用AI生成,填入本地路径 /tmp/cover.png) |
<p><img src="https://...jpg" /></p> | 章节图,直接填网络URL,脚本自动处理 |
800-1500 字(不含 HTML 标签)。
用 web_search 搜索相关图片,找到可直接访问的图片 URL(优先选 .jpg / .png 结尾的直链):
搜索技巧:
高清 无水印 版权free 等关键词# 示例:搜火影忍者高清图
web_search "火影忍者 海报 高清 site:duitang.com OR site:huaban.com"
把找到的图片 URL 直接写入 HTML(不要先下载,脚本会自动处理):
<p><img src="https://images3.alphacoders.com/602/602092.jpg" /></p>
封面图建议继续用 AI 生成(image_generate),保证品牌一致性。
# 保存文章HTML
标题保存到:/tmp/article_title.txt
内容保存到:/tmp/article.html
python3 /root/.openclaw/workspace/skills/wechat-daily-article/scripts/create_draft.py \
"$(cat /tmp/article_title.txt)" \
"/tmp/article.html"
脚本会自动:
草稿创建成功后,可通过飞书通知:
# 获取 token
TOKEN=$(curl -s -X POST 'https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal' \
-H 'Content-Type: application/json' \
-d '{"app_id": "<YOUR_APP_ID>", "app_secret": "<YOUR_APP_SECRET>"}' \
| grep -o '"tenant_access_token":"[^"]*"' | cut -d'"' -f4)
# 发送文本
curl -s -X POST 'https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id' \
-H "Authorization: Bearer ${TOKEN}" \
-H 'Content-Type: application/json' \
-d '{"receive_id": "<RECEIVER_OPEN_ID>", "msg_type": "text", "content": "{\"text\": \"📝 公众号文章已生成\\n标题:'$(cat /tmp/article_title.txt)'\\n请前往公众号后台草稿箱查看发布\"}"}'
当前账号「镜头逃亡·旅食记」已验证高效的方向,按优先级排列:
| 优先级 | 类型 | 示例选题 | 优势 |
|---|---|---|---|
| ⭐⭐⭐ | 时效热点追击 | 「淄博又火了?五一后淄博人少的正确打开方式」 | 平台流量倾斜,24小时内必须发 |
| ⭐⭐⭐ | 清单合集 | 「成都人私藏的7条街,好吃程度本地人都服」 | 收藏驱动,分享率高 |
| ⭐⭐ | 反常识/打假 | 「被小红书骗去吃的3家网红店 vs 本地人真爱店」 | 引发讨论,评论区活跃 |
| ⭐⭐ | 城市专题深度 | 「不是洪崖洞,是这5条老街才是真的重庆」 | 建立地域权威性 |
| ⭐ | 季节刚需 | 「五一出游:避开人挤人的6个小众目的地」 | 搜索流量大,长尾效应强 |
季节时间节点提醒:
| 内容类型 | 最佳发布时间 | 原因 |
|---|---|---|
| 旅游攻略 | 周二/四 早上9点 | 上班族刷手机高峰,提前收藏周末 |
| 美食探店 | 周五/六 下午5点 | 决定周末去哪吃 |
| 热点追击 | 事件发酵24小时内 | 时效性决定传播量 |
| 清单合集 | 周六/日 上午10点 | 休闲阅读场景,收藏率高 |
当用户要求发布抖音图文、探店内容、种草笔记时触发。
互动引导 + 公众号引流 + 二维码引导
例如:
你们觉得呢?👇
关注公众号【镜头逃亡·旅食记】获取更多美食探店攻略
扫码下方二维码 · 免费订阅全文
image_type=message 参数,否则400错误!
multipart/form-data 包含 image_type=message 和 image 两个字段/tmp/wechat_qr.jpg常见错误: file_type='file' 或 file_type='image' → 400 Invalid request param
正确方式:
POST /open-apis/im/v1/imagesmultipart/form-data 中加 image_type=message 字段(不是 file_type!)scripts/create_draft.py{
"name": "公众号文章每日创作",
"schedule": "cron 5 12 * * *",
"payload": {
"kind": "agentTurn",
"message": "执行公众号文章每日创作流程。参考 skill: wechat-daily-article",
"timeoutSeconds": 3600
},
"delivery": {
"mode": "announce",
"channel": "feishu",
"to": "user:<RECEIVER_OPEN_ID>"
}
}
首次使用前设置以下环境变量:
export WECHAT_APPID="你的微信公众号AppID"
export WECHAT_APPSECRET="你的微信公众号AppSecret"
export FEISHU_APP_ID="飞书机器人AppID"
export FEISHU_APP_SECRET="飞书机器人AppSecret"
export FEISHU_USER_OPEN_ID="接收通知的飞书用户open_id"
scripts/create_draft.py — 草稿创建脚本(上传图片 + 写草稿 + emoji注入 + 排版美化)references/image-prompts.md — 图片 prompt 规范与示例references/seo-guidelines.md — 公众号 SEO 规范(本文为升级版,冲突处以本文为准)/tmp/wechat_qr.jpg