NapCat API 发布系统 公开开发文档

接口版本:v1
接口地址http://bbs.mclinyunhai.com/wp-json/napcat/v1/publish
请求方式:POST
数据格式:application/json
默认发布用户:UID=3

1. 接口概述

本接口用于通过API方式远程发布文章至指定WordPress站点,具备密钥鉴权、自定义内容配置、后台日志记录等核心能力。发布的文章将自动归属至用户ID=3的账号下,适配程序化发文、批量发文等各类场景,兼顾安全性与便捷性。

核心特性:

2. 请求头要求(必填)

请求头必须指定数据格式,否则将导致接口请求失败,标准配置如下:

{
    "Content-Type": "application/json"
}

3. 请求参数说明

所有参数均以JSON格式传递,明确区分必填与可选,详细说明如下:

参数名 类型 必填 说明
api_key string 由系统后台分配的专属API密钥,作为接口调用的身份鉴权凭证,不可泄露
secret string 与api_key唯一匹配的秘钥,配合api_key完成双因子鉴权,需妥善保管
title string 文章标题,不可为空,建议控制在10-50字之间,避免过长或过短
content string 文章正文内容,不可为空,支持HTML格式(如换行<br/>、段落<p>等标签)
cat_id int 文章所属分类ID,不传则默认归属至ID=1的「未分类」,需参考分类ID对照表填写
tags string 文章标签,多标签需使用英文逗号分隔(例:"标签1,标签2,标签3"),不传则无标签
image_url string 文章封面图网络URL,需为可公开直接访问的有效链接(支持http/https),留空则不设置封面图

4. 站点分类ID对照表

发布文章时,可通过cat_id参数指定文章所属分类,未指定则默认使用「未分类(ID=1)」,分类对应关系如下:

分类名称 分类ID 分类名称 分类ID
未分类 1 科技资讯 14
游戏天地 4 问答互助 15
电竞竞技 5 资源分享 16
联机开黑 6 闲聊灌水 17
数码硬件 7 站务公告 18
软件工具 8 原创创作 11
动漫影视 9 生活日常 12
音乐音频 10 学习交流 13

5. 开发请求示例(Python)

以下为标准Python请求示例,适配Python 3.x版本,使用前需提前安装requests库(执行命令:pip install requests),使用时请替换为实际分配的api_keysecret

import requests
import json

# 接口基础配置
API_URL = "http://123.56.216.95/wp-json/napcat/v1/publish"
headers = {"Content-Type": "application/json"}

# 发文参数配置(请替换为实际鉴权信息和文章内容)
post_data = {
    "api_key": "你的专属API Key",
    "secret": "你的专属Secret",
    "title": "API发布测试文章标题",
    "content": "这是通过API发布的测试正文,支持HTML格式<br/>可换行展示内容,也可添加<p>段落标签</p>",
    "cat_id": 9,  # 对应「动漫影视」分类
    "tags": "API发布,测试,动漫影视",  # 多标签用英文逗号分隔
    "image_url": ""  # 留空不设置封面图,可替换为实际图片URL
}

# 发送请求并获取响应
try:
    response = requests.post(API_URL, data=json.dumps(post_data), headers=headers, timeout=15)
    # 解析响应结果(JSON格式)
    response_data = response.json()
    print("接口响应:", response_data)
except Exception as e:
    print("请求失败,错误信息:", str(e))

6. 响应示例

6.1 正常返回(发布成功)

当请求参数合法、鉴权通过、内容审核通过时,返回以下JSON格式结果:

{
    "code": 200,
    "msg": "发布成功",
    "url": "http://123.56.216.95/xxx/xxx",  # 发布文章的访问链接
    "cat_id": 9,  # 实际发布的分类ID
    "tags": "API发布,测试,动漫影视"  # 实际设置的标签
}

6.2 错误返回(示例)

当请求参数错误、鉴权失败或内容违规时,返回对应错误码及提示:

{
    "code": 403,
    "msg": "密钥不存在"
}

7. 错误码说明

接口返回的code字段对应不同的请求状态,便于开发排查问题,详细说明如下:

code 状态说明 常见原因
200 发布成功 请求参数合法、鉴权通过、内容审核通过
400 请求参数错误 标题或内容为空、参数格式错误
403 鉴权失败/内容违规 api_key或secret错误、密钥已禁用、内容审核不通过
500 服务器内部错误 服务器异常、接口部署问题,需联系技术支持

8. 使用规范

  1. 鉴权规范:api_key和secret为专属鉴权凭证,禁止泄露、转借、售卖,若凭证泄露需及时联系管理员重置。
  2. 内容规范:禁止发布违法、违规、侵权、低俗、垃圾广告等内容,否则将禁用密钥并追究相关责任。
  3. 参数规范:多标签必须使用英文逗号分隔,封面图URL需为有效可访问链接,避免无效链接导致封面设置失败。
  4. 调用规范:合理控制接口调用频率,避免高频批量请求给服务器造成压力,建议单次请求间隔≥1秒。
  5. 排查规范:若请求失败,可先核对参数格式、api_key/secret正确性,再根据错误码排查问题,无法解决可联系技术支持。

9. 技术支持

若接口调用过程中遇到问题(如错误码异常、发布失败、参数疑问等),可联系相关技术负责人排查处理,确保接口正常使用。