将上述密钥添加到下面的 Python 脚本对应的配置信息中
文件 publish.py
# -*- coding: utf-8 -*-
import requests
import json
import base64
import time
# 发布文章
def publish_post(site_url, username, app_password, title, content, category_id=1, status="publish"):
    session = requests.Session()
    url = f"{site_url}/wp-json/wp/v2/posts"
    
    # 使用应用程序密码进行 Basic Auth
    auth_string = f"{username}:{app_password}"
    auth_encoded = base64.b64encode(auth_string.encode()).decode()
    headers = {
        "User-Agent": "Mozilla/5.0",
        "Authorization": f"Basic {auth_encoded}",
        "Content-Type": "application/json"
    }
    
    data = {
        "title": title,
        "content": content,
        "status": status,  # 可选:publish, draft, private
        "categories": [category_id],  # 分类 ID
        "date": time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()),
        "date_gmt": time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime())
    }
    
    try:
        response = session.post(url, json=data, headers=headers, timeout=10)
        response.raise_for_status()
        print("文章发布成功!")
        return json.loads(response.content)
    except requests.RequestException as e:
        print(f"文章发布失败: {e}")
        return None
if __name__ == "__main__":
    # 配置信息
    SITE_URL = "http://127.0.0.1:8080"  # 替换为你的 WordPress 站点地址
    USERNAME = "robot"  # 替换为你的 WordPress 用户名
    APP_PASSWORD = "sypK VwzF ckCG JFnX xrCn T2UH"  # 替换为你的应用程序密码
    POST_TITLE = "通过 REST API 和应用程序密码发布的测试文章"
    POST_CONTENT = "这是一篇通过 Python 和 WordPress REST API 自动发布的文章内容。"
    CATEGORY_ID = 1  # 替换为你的分类 ID
    # 发布文章
    publish_post(SITE_URL, USERNAME, APP_PASSWORD, POST_TITLE, POST_CONTENT, CATEGORY_ID)