通过微信公众号 API 管理草稿箱内容,支持创建图文消息、上传图片、发布文章。
# 添加到 ~/.zshrc
export WECHAT_APPID="your-app-id"
export WECHAT_APPSECRET="your-app-secret"
然后执行:
source ~/.zshrc
基础用法(自动生成封面图):
python3 scripts/channel.py create "文章标题" "这里是正文内容..."
从文件读取正文(自动生成封面图):
python3 scripts/channel.py create "文章标题" --file article.txt
带自定义封面图:
python3 scripts/channel.py create "文章标题" "正文内容..." --cover cover.jpg
禁止自动生成封面图:
python3 scripts/channel.py create "文章标题" "正文..." --no-auto-cover
设置作者:
python3 scripts/channel.py create "文章标题" "正文..." --author "张三"
纯文本:
python3 scripts/channel.py create "标题" "这是正文内容,支持换行。\n\n第二段内容..."
带图片(Markdown 格式):
python3 scripts/channel.py create "标题" "正文\n\n!<span class=\"image\"><span>描述</span></span>(/path/to/image.jpg)\n\n更多内容..."
HTML 格式:
python3 scripts/channel.py create "标题" "<p>正文</p><img src='url' />"
# 列出最近 20 篇
python3 scripts/channel.py list
# 列出最近 50 篇
python3 scripts/channel.py list --limit 50
输出示例:
📝 草稿列表 (3 篇):
序号 Media ID 标题 更新时间
----------------------------------------------------------------------------------------------------
1 MEDIA_ID_1234567890abcdef 欢迎使用微信公众号 2024-02-03 15:30
2 MEDIA_ID_abcdef1234567890 文章标题示例 2024-02-03 14:20
3 MEDIA_ID_xxxxxxxxxxxxxxxx 测试草稿 2024-02-03 13:10
python3 scripts/channel.py publish MEDIA_ID_1234567890abcdef
⚠️ 注意:发布接口需要开通发布权限,部分账号可能需要手动在后台发布。
python3 scripts/channel.py delete MEDIA_ID_1234567890abcdef
| 命令 | 功能 | 示例 |
|---|---|---|
| ------ | ------ | ------ |
create | 创建草稿 | create "标题" "正文" --cover img.jpg |
list | 列岀草稿 | list --limit 20 |
publish | 发布草稿 | publish media_id |
delete | 删除草稿 | delete media_id |
| 参数 | 简写 | 说明 | 必填 |
|---|---|---|---|
| ------ | ------ | ------ | ------ |
title | - | 文章标题 | 是 |
content | - | 正文内容 | 否(可用 --file) |
--file | -f | 从文件读取正文 | 否 |
--author | -a | 作者名称 | 否 |
--cover | -c | 封面图片路径 | 否 |
--no-auto-cover | - | 禁止自动生成封面图 | 否 |
--no-comment | - | 关闭评论 | 否 |
--fans-only | - | 仅粉丝可评论 | 否 |
当未提供 --cover 参数时,工具会自动生成一张默认封面图:
如需使用自定义封面,请使用 --cover 参数指定图片路径。
粗体 → 粗体斜体 → 斜体描述(路径) → 图片(自动上传)本地图片(自动上传):
!<span class="image"><span>图片描述</span></span>(/path/to/local/image.jpg)
网络图片(直接使用):
!<span class="image"><span>图片描述</span></span>(https://example.com/image.jpg)
创建成功示例:
============================================================
✅ 草稿创建成功!
============================================================
📄 Media ID: MEDIA_ID_1234567890abcdef
📝 标题: 欢迎使用微信公众号
📋 摘要: 这是文章的摘要内容,来自正文第一段...
⏰ 创建时间: 2024-02-03T15:30:45.123456
💡 提示:
- 草稿已保存到微信公众号后台
- 请登录 mp.weixin.qq.com 查看并发布
- 或使用 'publish' 命令直接发布(需开通权限)
============================================================
# 创建并准备发布
python3 scripts/channel.py create "今日新闻" "今天的重要新闻是..." --author "编辑部"
# 然后手动或自动发布
python3 scripts/channel.py list
python3 scripts/channel.py publish MEDIA_ID_xxxx
# 准备多个文章文件
for file in articles/*.md; do
title=$(head -1 "$file")
python3 scripts/channel.py create "$title" --file "$file"
done
#!/bin/bash
# publish_daily.sh
TITLE="$(date +%Y年%m月%d日) 日报"
CONTENT=$(cat template.txt)
# 创建草稿
RESULT=$(python3 scripts/channel.py create "$TITLE" "$CONTENT" --cover daily_cover.jpg)
# 提取 Media ID 并发布(可选)
# MEDIA_ID=$(echo "$RESULT" | grep "Media ID:" | awk '{print $3}')
# python3 scripts/channel.py publish "$MEDIA_ID"
错误:请设置环境变量 WECHAT_APPID 和 WECHAT_APPSECRET
→ 检查环境变量是否正确设置并生效
错误:access_token missing
→ 检查 AppID 和 AppSecret 是否正确
→ 确认服务器 IP 已添加到公众号白名单
错误:api unauthorized
→ 公众号未认证,部分接口需要微信认证
→ 订阅号和服务号权限不同
图片上传失败
→ 检查图片路径是否正确
→ 图片大小不能超过 10MB
→ 支持格式:jpg, png, gif
发布失败
→ 确认已开通发布权限
→ 部分账号需要手动在后台发布
| 接口 | 每日限制 | 说明 |
|---|---|---|
| ------ | ---------- | ------ |
| 获取 Access Token | 2000 次 | 有效期 7200 秒 |
| 创建草稿 | 100 篇 | 草稿总数上限 100 |
| 上传图片 | 无明确限制 | 单张最大 10MB |
| 发布 | 无明确限制 | 需要发布权限 |
共 2 个版本