前言
作为内容创作者,最繁琐的工作之一就是在多个平台重复发布相同的内容:微博、小红书、知乎、公众号、B站、抖音、快手……每个平台都要手动复制粘贴,调整格式,上传配图,简直是在浪费生命。
今天教你用 OpenClaw 搭建一套自动发布系统,一次输入,自动分发到 7 个主流平台,节省 90% 的重复劳动。
前置准备
1. 安装 OpenClaw
OpenClaw 是一个开源的个人自动化平台,可以通过对话式 AI 控制各种应用和服务。
安装方式:
# macOS (Homebrew)
brew install openclaw/tap/openclaw
# Linux/Docker
docker pull ghcr.io/openclaw/openclaw:latest
# 启动服务
openclaw gateway start
安装完成后:
- 访问 http://localhost:3000 进入 Web 界面
- 使用手机号或邮箱注册账号
- 下载配套 App(iOS/Android)完成配对
2. 准备平台账号
确保你已经注册了以下平台账号(根据需要选择):
文字类平台:
- 微信公众号
- 知乎
- 微博
- 小红书
视频类平台:
- B站
- 抖音
- 快手
实战步骤
第一步:配置多平台发布技能
OpenClaw 提供了 message 工具,支持 7+ 个主流平台的自动发布。我们需要先配置各平台的 API 凭证。
1. 微信公众号配置
登录微信公众平台,获取以下信息:
- AppID
- AppSecret
在 OpenClaw 配置文件中添加:
# ~/.openclaw/workspace/.env
WECHAT_APP_ID=wx11f8ea8984f3115d
WECHAT_APP_SECRET=your_app_secret_here
2. 知乎配置
知乎需要 OAuth 授权,使用 OpenClaw 的知乎技能完成授权:
cd ~/.openclaw/extensions/zhihu
npm run auth
按提示完成浏览器授权。
3. 微博、小红书等平台
类似地,各平台都需要完成 OAuth 授权或 API Key 配置。OpenClaw 的文档中有详细的配置说明。
第二步:创建发布脚本
创建一个统一的文章模板和发布脚本:
文件: scripts/publish-everywhere.sh
#!/bin/bash
# 读取文章内容
ARTICLE_FILE="$1"
TITLE=$(grep "^# " "$ARTICLE_FILE" | head -1 | sed 's/^# //')
CONTENT=$(cat "$ARTICLE_FILE")
# 提取封面图(第一张图片)
COVER_IMAGE=$(grep -oP '!\[.*?\]\(\K[^\)]+' "$ARTICLE_FILE" | head -1)
# 发布到微信公众号
echo "📝 发布到微信公众号..."
node ~/.openclaw/workspace/skills/wechat-publisher/scripts/publish.mjs \
--title "$TITLE" \
--content "$CONTENT" \
--author "你的名字" \
--cover "$COVER_IMAGE"
# 发布到知乎
echo "📝 发布到知乎..."
message --channel zhihu \
--action publish-article \
--title "$TITLE" \
--content "$CONTENT" \
--cover "$COVER_IMAGE"
# 发布到微博
echo "📝 发布到微博..."
# 微博字数限制,需要截取摘要
SUMMARY=$(echo "$CONTENT" | head -20 | tr '\n' ' ')
message --channel weibo \
--action send \
--message "$TITLE
$SUMMARY
全文链接:https://your-blog.com/article-url"
# 发布到小红书
echo "📝 发布到小红书..."
message --channel xiaohongshu \
--action publish-note \
--title "$TITLE" \
--content "$CONTENT" \
--images "$COVER_IMAGE"
echo "✅ 发布完成!"
赋予执行权限:
chmod +x scripts/publish-everywhere.sh
第三步:使用 AI 自动适配各平台格式
不同平台有不同的格式要求,我们可以让 AI 自动适配:
文件: scripts/adapt-for-platform.py
import sys
import json
# 读取文章内容
with open(sys.argv[1], 'r') as f:
content = f.read()
# 提取标题和正文
lines = content.split('\n')
title = lines[0].replace('# ', '')
body = '\n'.join(lines[2:])
# 为不同平台生成适配版本
platforms = {
'weibo': {
'max_length': 2000,
'needs_summary': True,
'format': 'title + summary + link'
},
'xiaohongshu': {
'max_length': 1000,
'emoji_friendly': True,
'format': 'emoji-rich, paragraph-based'
},
'zhihu': {
'markdown': True,
'code_blocks': True,
'format': 'standard article'
}
}
# 使用 OpenClaw 的 AI 适配
for platform, rules in platforms.items():
adapted = adapt_content(content, rules)
with open(f'{sys.argv[1]}.{platform}', 'w') as f:
f.write(adapted)
def adapt_content(content, rules):
"""根据平台规则适配内容"""
# 这里可以调用 OpenClaw 的 AI 接口
# 简化版:截断长度、添加 emoji 等
adapted = content
if rules.get('needs_summary'):
# 生成摘要
adapted = generate_summary(adapted)
if rules.get('max_length'):
# 截断到最大长度
adapted = adapted[:rules['max_length']]
return adapted
第四步:设置定时自动发布
假设你习惯每天早上 8 点发布新内容:
配置定时任务:
# 编辑 crontab
crontab -e
添加定时任务:
0 8 * * * cd /Users/yourname/.openclaw/workspace && bash scripts/publish-everywhere.sh generated-articles/$(date +\%Y-\%m-\%d).md
这样每天早上 8 点,OpenClaw 会自动查找当天日期的文章,并分发到所有配置的平台。
第五步:监控发布状态
创建一个监控脚本,跟踪各平台的发布结果:
文件: scripts/check-publishing-status.sh
#!/bin/bash
LOG_FILE="publishing-logs/$(date +%Y-%m-%d).log"
echo "=== 发布状态报告 $(date) ===" | tee -a "$LOG_FILE"
# 检查微信公众号发布状态
echo "📊 微信公众号:" | tee -a "$LOG_FILE"
# 调用微信 API 查询最新文章状态
# 检查知乎发布状态
echo "📊 知乎:" | tee -a "$LOG_FILE"
# 查询知乎最新文章
# 统计各平台阅读量
echo "📈 阅读量统计:" | tee -a "$LOG_FILE"
# 收集各平台数据
echo "✅ 检查完成" | tee -a "$LOG_FILE"
# 发送报告到飞书
message --channel feishu \
--target "your_user_id" \
--filePath "$LOG_FILE"
效果展示
配置完成后,你的工作流程会变成这样:
传统方式(耗时 60+ 分钟):
- 打开微信公众号后台
- 复制文章,调整格式,上传图片
- 打开知乎,重复相同操作
- 打开微博,截取摘要,发布
- 打开小红书,调整格式为 emoji 风格
- ...继续其他平台
使用 OpenClaw(耗时 1 分钟):
bash scripts/publish-everywhere.sh generated-articles/today-article.md
然后你可以去喝杯咖啡,OpenClaw 会自动:
- ✅ 发布到微信公众号(自动上传图片)
- ✅ 发布到知乎(保留 Markdown 格式)
- ✅ 发布到微博(自动截取摘要)
- ✅ 发布到小红书(自动添加 emoji)
- ✅ 发布到其他平台
- ✅ 发送发布报告到你的飞书
效率提升: 60分钟 → 1分钟(60倍)
常见问题
Q1:某些平台需要验证码怎么办?
OpenClaw 的浏览器自动化技能可以处理验证码:
# 首次发布时,会弹出浏览器窗口
# 手动完成验证后,OpenClaw 会记住会话
# 之后就可以自动发布了
Q2:不同平台的图片要求不一样怎么办?
使用 AI 自动调整图片尺寸:
# scripts/resize-images.py
from PIL import Image
def resize_for_platform(image_path, platform):
img = Image.open(image_path)
sizes = {
'wechat': (900, 500), # 公众号封面比例
'xiaohongshu': (1080, 1080), # 小红书 1:1
'weibo': (900, 500), # 微博
'zhihu': (1200, 675) # 知乎
}
if platform in sizes:
img.resize(sizes[platform]).save(f'{image_path}.{platform}')
Q3:如何处理各平台的审核机制?
OpenClaw 支持敏感词过滤和内容审核:
# ~/.openclaw/workspace/content-rules.yaml
blocklist:
- 广法
- 加微信
- 代购
platform_rules:
weibo:
max_links: 1
no_external_links: true
xiaohongshu:
no_qr_codes: true
max_emoji: 20
发布前会自动检查并提示风险内容。
进阶技巧
1. 自动生成不同平台的标题
同一个内容,在不同平台使用不同的标题效果更好:
文件: scripts/generate-titles.py
import openai
def generate_titles(original_title):
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[{
"role": "user",
"content": f"""为以下文章标题生成 4 个不同平台的变体:
原标题:{original_title}
要求:
- 微博:15字内,吸引眼球,可适当夸张
- 小红书:20字内,emoji丰富,突出"干货"
- 知乎:25字内,专业严谨,带疑问
- 微信公众号:30字内,完整表达,可分主副标题
返回 JSON 格式。"""
}]
)
return json.loads(response.choices[0].message.content)
# 使用
titles = generate_titles("OpenClaw 社交媒体自动发布系统")
# 输出:
# {
# "weibo": "一键发7平台!这工具太强了",
# "xiaohongshu": "🔥 内容创作者必看!一键分发7大平台",
# "zhihu": "如何用自动化工具实现多平台内容分发?",
# "wechat": "OpenClaw 社交媒体自动发布系统:一篇文章分发 7 个平台"
# }
2. 数据收集与分析
自动收集各平台的阅读、点赞、评论数据:
文件: scripts/collect-metrics.py
import requests
import json
def collect_metrics(article_url):
metrics = {}
# 微信公众号阅读量(需要登录后台)
metrics['wechat'] = get_wechat_reads(article_url)
# 知乎点赞和评论数
metrics['zhihu'] = get_zhihu_stats(article_url)
# 微博转发和点赞
metrics['weibo'] = get_weibo_engagement(article_url)
# 保存到数据库或发送到飞书
message --channel feishu \
--message "📊 数据报告:\n${json.dumps(metrics, indent=2)}"
return metrics
# 定时收集数据(每天晚上10点)
# 0 22 * * * python3 scripts/collect-metrics.py
3. 智能发布时间优化
不同平台的最佳发布时间不同:
文件: scripts/optimize-timing.py
import json
best_times = {
'wechat': '08:00', # 早晨通勤
'weibo': '12:00', # 午休时间
'zhihu': '21:00', # 晚间深度阅读
'xiaohongshu': '22:00', # 睡前刷手机
'bilibili': '18:00' # 下班后
}
def schedule_publish(article_file, platforms):
for platform in platforms:
time = best_times.get(platform, '09:00')
# 使用 OpenClaw 的 cron 功能
# 每个平台在不同时间发布
print(f"{platform}: {time}")
总结
通过 OpenClaw 搭建社交媒体自动发布系统,你可以:
节省时间:从 60 分钟缩短到 1 分钟
提高覆盖:一次输入,分发 7+ 个平台
保证质量:AI 自动适配各平台格式
数据驱动:自动收集和分析各平台数据
灵活扩展:轻松添加新平台支持
这套系统的核心价值:
- 把你从重复劳动中解放出来
- 专注于内容创作,而不是复制粘贴
- 建立属于自己的内容分发网络
扩展阅读
- OpenClaw 官方文档
- 微信公众号 API 文档
- 知乎开放平台
- OpenClaw GitHub 仓库
_如果你觉得这篇文章对你有帮助,欢迎点赞、收藏、转发!_
夜雨聆风