python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > Python公众号自动发布草稿箱

Python微信公众号官方API自动发布草稿箱代码示例

作者:不再游移

很多人可能不知道,微信公众号其实提供了完整的开发者接口,允许我们通过代码来管理内容,这篇文章主要介绍了Python微信公众号官方API自动发布草稿箱的相关资料,需要的朋友可以参考下

一、官方 API 说明(关键)

微信公众号 正式提供草稿箱管理接口(非模拟浏览器)微信开放社区:

二、开发前准备(必须)

1. 公众号后台配置

  1. 登录 mp.weixin.qq.com
  2. 进入 设置与开发 → 基本配置
  3. 开启 开发者密码(AppSecret) → 保存好 AppID、AppSecret
  4. IP 白名单:把你服务器 / 本机出口 IP 加入(否则调用 401 拒绝)
  5. 不用配置服务器 URL/Token(草稿接口不需要)

2. 安装依赖

pip install requests python-dotenv

3. 素材准备

三、完整流程(官方 API)

  1. 获取 access_token(2 小时有效)
  2. 上传封面图到 永久素材,得到 thumb_media_id
  3. 组装文章 JSON,调用 /cgi-bin/draft/add 新增草稿
  4. 返回 media_id → 草稿创建成功

四、完整 Python 代码(可直接运行)

1. 项目结构

wechat_api_draft/
├── .env               # 配置(安全)
├── cover.jpg          # 封面图
├── wechat_draft_api.py # 主代码
└── README.md

2. .env 配置文件(安全)

# 公众号基本信息
WECHAT_APPID=你的AppID
WECHAT_APPSECRET=你的AppSecret

# 文章配置
ARTICLE_TITLE=Python官方API发布草稿测试
ARTICLE_CONTENT=<p>这是通过微信官方API自动发布的正文</p><p>支持HTML格式,格式稳定不乱</p>
ARTICLE_DIGEST=这是文章摘要,不超过120字
COVER_IMAGE_PATH=./cover.jpg

3. 主代码 wechat_draft_api.py

import requests
import os
from dotenv import load_dotenv
import json

# 加载环境变量
load_dotenv()

# ====================== 配置读取 ======================
APPID = os.getenv("WECHAT_APPID")
APPSECRET = os.getenv("WECHAT_APPSECRET")
TITLE = os.getenv("ARTICLE_TITLE")
CONTENT = os.getenv("ARTICLE_CONTENT")
DIGEST = os.getenv("ARTICLE_DIGEST")
COVER_PATH = os.getenv("COVER_IMAGE_PATH")

# ====================== 1. 获取 access_token ======================
def get_access_token():
    url = f"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={APPID}&secret={APPSECRET}"
    res = requests.get(url).json()
    if "access_token" in res:
        print("✅ 获取 access_token 成功")
        return res["access_token"]
    else:
        raise Exception(f"获取 access_token 失败:{res}")

# ====================== 2. 上传永久素材(封面图) ======================
def upload_permanent_media(access_token, file_path):
    url = f"https://api.weixin.qq.com/cgi-bin/material/add_material?access_token={access_token}&type=image"
    files = {
        "media": open(file_path, "rb")
    }
    res = requests.post(url, files=files).json()
    if "media_id" in res:
        print("✅ 封面图上传成功,media_id:", res["media_id"])
        return res["media_id"]
    else:
        raise Exception(f"上传素材失败:{res}")

# ====================== 3. 新增草稿到草稿箱(核心) ======================
def create_wechat_draft(access_token, thumb_media_id):
    url = f"https://api.weixin.qq.com/cgi-bin/draft/add?access_token={access_token}"
    
    # 文章参数(官方格式)
    payload = {
        "articles": [
            {
                "title": TITLE,
                "thumb_media_id": thumb_media_id,
                "author": "作者名",
                "digest": DIGEST[:120],  # 摘要≤120字
                "show_cover_pic": 1,     # 正文显示封面
                "content": CONTENT,      # 正文HTML
                "content_source_url": "",# 原文链接
                "need_open_comment": 1,  # 开启评论
                "only_fans_can_comment": 0
            }
        ]
    }

    headers = {"Content-Type": "application/json"}
    res = requests.post(url, data=json.dumps(payload, ensure_ascii=False), headers=headers).json()
    
    if "media_id" in res:
        print("\n🎉 草稿创建成功!")
        print("草稿 media_id:", res["media_id"])
        print("请到公众号后台【草稿箱】查看")
        return res["media_id"]
    else:
        raise Exception(f"创建草稿失败:{res}")

# ====================== 主函数 ======================
if __name__ == "__main__":
    try:
        token = get_access_token()
        thumb_media_id = upload_permanent_media(token, COVER_PATH)
        draft_media_id = create_wechat_draft(token, thumb_media_id)
    except Exception as e:
        print("\n❌ 错误:", e)

五、运行教程

  1. 把 .env 填好你的 AppID、AppSecret
  2. 把封面图命名 cover.jpg 放同目录
  3. 运行:
python wechat_draft_api.py
  1. 成功后:
    • 控制台输出 media_id
    • 登录 mp.weixin.qq.com → 草稿箱 即可看到文章

六、官方接口参数说明(关键)

新增草稿 articles 字段

七、常见错误(踩坑大全)

1. 40165 无效 IP

2. 40007 无效媒体 ID

3. 48001 无权限

4. 正文图片不显示

5. 40008 消息长度超限

八、进阶扩展(官方 API)

到此这篇关于Python微信公众号官方API自动发布草稿箱的文章就介绍到这了,更多相关Python公众号自动发布草稿箱内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文