当前位置:首页 > 技术笔记

Z-Blog PHP API 自动发文完全指南:从零到成功发布

JackSee17小时前技术笔记41

Z-Blog PHP API 自动发文完全指南

前言

本文记录一次完整的 Z-BlogPHP API 自动发文实战过程,从接口探测、登录鉴权到成功发布,包含所有踩过的坑和解决方案,希望能帮助同样需要"自动发文"的朋友少走弯路。

一、前置条件:确认 API 地址

Z-BlogPHP 1.7 及以上版本内置了原生 JSON API,入口统一为:

https://你的域名/zb_system/api.php

这个地址可以在后台首页看到。注意:该接口只接受 POST 请求,直接用浏览器 GET 访问会返回 404,这是正常现象,不要误以为接口不存在。

二、登录获取 token

所有"增删改"类操作都需要鉴权。第一步是登录,换取访问令牌:

POST /zb_system/api.php?mod=member&act=login

请求体字段:

  • username:后台登录用户名
  • password:密码的 MD5 值(推荐)
  • savedate:有效期天数(如 30 表示 30 天)

登录成功后返回:

{"code":200,"data":{"user":{...},"token":"xxxx","expire_time":1788974849}}

保存好 token,它就是后续所有请求的通行证。

三、携带 token 鉴权

三种方式都可以,任选其一:

  • HTTP 请求头:Authorization: Bearer <token>(推荐)
  • POST 字段:token=<token>
  • GET 参数:?token=<token>

四、发布文章(核心操作)

发布文章使用 post 模块:

POST /zb_system/api.php?mod=post&act=post

关键字段(来源:官方文档 datainfo 定义):

  • ID:0 表示新建,非 0 且存在则修改
  • Title:标题
  • Content:正文(HTML 格式)
  • Intro:摘要(可留空自动生成)
  • CateID:分类 ID
  • Status:0=发布,1=草稿
  • Type:0=文章

完整 curl 示例:

curl -X POST "https://你的域名/zb_system/api.php?mod=post&act=post"   -H "Authorization: Bearer <token>"   -H "Content-Type: application/x-www-form-urlencoded"   --data-urlencode "ID=0"   --data-urlencode "Title=标题"   --data-urlencode "Content=<p>正文</p>"   --data-urlencode "CateID=1"   --data-urlencode "Status=0"

五、踩坑记录

坑 1:模块名是 post,不是 article

文章模块的源码文件是 zb_system/api/post.php,所以模块名必须是 mod=post。用 mod=article 会直接 404。

坑 2:xiurr 插件拦截保存

本站装有 xiurr_editormd_plus(Editor.md_PLUS 编辑器)插件,它会在保存文章时读取编辑器专属字段(如 xiurr-render-config),API 调用不带这些字段就会报 Undefined array key 错误,甚至把文章内容清空。解决:后台禁用该插件后,API 发文立即恢复正常。

坑 3:返回"操作成功"但文章没落库

插件拦截时会出现返回成功但 post.ID=0 的假象。验证方法:发布后调用 ?mod=post&act=list&manage=1 查看最新文章,确认新文章 ID 确实存在。

六、其他常用操作

  • 获取文章列表:mod=post&act=list(加 manage=1 可看草稿)
  • 获取单篇:mod=post&act=get&id=文章ID
  • 删除文章:mod=post&act=delete&id=文章ID
  • 分类列表:mod=category&act=list
  • 管理插件:mod=app&act=enable_plugin / disable_plugin,参数 id=插件ID

结语

Z-BlogPHP 的原生 API 功能完整、调用简单,配合 token 鉴权可以方便地实现自动发文、批量更新、内容同步等需求。遇到问题时,官方文档和源码(GitHub 上的 zblogcn/zblogphp)是最好的参考。祝大家发文顺利!

本站所有文章内容在未注明的情况下均为原创,未经允许谢绝转载。

相关文章

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。