文件除前言、结束语外共四章,分别是全面客观看待全球产能和所谓“过剩”、对“产能过剩”相关四对关系的看法立场、中国坚持在开放合作中建设现代化产业体系、共同推动构建开放包容的全球产供链合作格局。
支撑HTML格式,格式稳定不乱 ARTICLE_DIGEST=这是文章摘要,不超过120字 COVER_IMAGE_PATH=./cover.jpg 3. 主代码 wechat_draft_api.py python 运行 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) 五、运行教程 把 .env 填好你的 AppID、AppSecret把封面图命名 cover.jpg 放同目录运行: bash 运行 python wechat_draft_api.py 成功后: 控制台输出 media_id登录 mp.weixin.qq.com → 草稿箱 即可看到文章 六、官方接口参数说明(关键) 新增草稿 articles 字段 title:标题(必填)thumb_media_id:封面图 media_id(必须永久素材)author:作者digest:摘要(≤120 字)show_cover_pic:1 = 正文显示封面content:正文(HTML 格式)need_open_comment:1 = 开启评论only_fans_can_comment:0 = 所有人可评 七、常见错误(踩坑大全) 1. 40165 无效 IP 原因:IP 不在白名单解决:公众号后台 → 基本配置 → IP 白名单 加入本机 / 服务器出口 IP 2. 40007 无效媒体 ID 原因:封面图用了 临时素材(必须永久素材)解决:用 /cgi-bin/material/add_material 上传永久素材 3. 48001 无权限 原因:账号未认证 / 接口权限被回收解决:必须认证公众号(个人 / 企业均可) 4. 正文图片不显示 原因:content 里不能放外网图片解决:正文图片也要先上传永久素材,用 src="https://mmbiz.qpic.cn/xxx" 5. 40008 消息长度超限 原因:正文 / 标题过长限制:标题≤64 字,摘要≤120 字,正文≤10 万字符 八、进阶扩展(官方 API) 获取草稿列表:/cgi-bin/draft/batchget微信开放社区删除草稿:/cgi-bin/draft/delete微信开放社区更新草稿:/cgi-bin/draft/update微信开放社区发布草稿:/cgi-bin/freepublish/submit(正式发布)微信开放社区
吴竹如、窦兰泉之精义,一言一事,必求至是。吴子序、邵蕙西之谈经,深思明辨。...
据美国阿克西奥斯新闻网站25日报道,美国总统特朗普24日命令美军当天不要对伊朗发动打击,从而打破了此前美军连续13天对伊发动空袭的局面。特朗普24日下午在白宫对媒体说,美国和伊朗现在仍在对话,并称伊朗方面“这次是认真的”。他同时威胁说,美方也可以继续对伊朗的军事打击,“如有必要,完全可以提升到一个更高水平。我们已经做好准备,随时可以行动”。
SCP 不直接授予权限,只负责设置账号或 OU 的权限上限。也就是说: IAM Policy 允许,但 SCP 不允许,最终不允许IAM Policy 不允许,SCP 允许,也不会自动获得权限 典型场景是组织层面禁止使用某些区域,结果用户在控制台切到其他 Region 创建资源时提示权限不足。