Skip to content

this is a light weight RESTful plugin for typecho, special for typecho 1.3.

License

Notifications You must be signed in to change notification settings

Coder-Soder/Typecho-Api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🧩 Typecho Api 插件

一个为 Typecho 1.3+ 设计的轻量级 RESTful API 插件。 支持文章发布、文章查询、评论获取、博客信息查询、分类与标签获取、备份操作等功能。 非常适合与外部前端、移动 App、自动化脚本对接。


✨ 插件功能概览

功能 接口方法 (method) 说明
获取文章列表 getarticle 按页返回已发布文章
发布文章 release 通过 API 发布新文章(支持分类和标签)
获取评论 getcomments 获取指定文章的评论列表
获取站点信息 getbloginfo 返回网站标题、描述、主题、统计等
获取全部标签 getalltags 列出站点所有标签
获取全部分类 getallcategories 列出所有分类
搜索文章 search 按关键字搜索文章
备份数据库 backup_db 备份 Typecho 数据库
备份文件 backup_files 备份网站文件
备份全部 backup_all 同时备份数据库和文件
删除备份 delete_backups 删除旧备份
获取分类下文章 getcategoryposts 按分类名获取文章列表
删除文章 delete 删除指定文章

📦 插件安装方法

  1. 将插件文件上传到 Typecho 的插件目录:

text

/usr/plugins/
  1. 解压后目录结构如下:

text

/usr/plugins/Api/
├── Plugin.php
├── Action.php
└── README.md
  1. 确保权限正确(非常重要):

bash

chmod -R 755 /usr/plugins/Api
  1. 登录 Typecho 后台 → 控制台 → 插件管理,启用 Api 插件。
  2. 点击 "设置" 按钮进行配置。

⚙️ 插件配置项

在后台配置页面可以设置以下选项:

配置项 默认值 说明
访问 Token 654321 每次访问 API 时必须携带此 Token 参数,否则返回 access denied
是否启用备份功能 启用 允许通过 API 执行数据库和文件备份
文章默认作者 ID 1 调用 release 方法发布文章时使用的作者 ID

🔐 Token 验证机制

所有 API 调用都需要提供正确的 token 参数。

示例:

text

https://yourdomain.com/index.php/api?token=654321&method=getarticle&page=1&pageSize=10

若 token 不匹配,将返回:

json

{
  "success": false,
  "message": "access denied"
}

🚀 示例接口调用

1️⃣ 获取文章列表

text

GET /index.php/api?token=654321&method=getarticle&page=1&pageSize=5

返回:

json

{
  "success": true,
  "data": [
    {
      "cid": 10,
      "title": "Hello Typecho",
      "slug": "hello-typecho",
      "created": "2025-10-10 21:30:00",
      "authorId": 1,
      "tags": ["Typecho", "API"],
      "summary": "Typecho 插件开发示例..."
    }
  ],
  "pagination": {
    "total": 32,
    "page": 1,
    "pageSize": 5
  }
}

2️⃣ 发布文章

text

POST /index.php/api?token=654321&method=release

POST 参数:

参数名 说明
title 文章标题(必需)
content 文章内容(HTML/Markdown)(必需)
slug 可选,固定链接名
tags 可选,用逗号分隔的标签名
categories 可选,用逗号分隔的分类名

返回:

json

{
  "success": true,
  "message": "文章发布成功(分类已生效)",
  "cid": 35,
  "slug": "article-slug"
}

3️⃣ 获取评论

text

GET /index.php/api?token=654321&method=getcomments&cid=10

返回:

json

{
  "success": true,
  "data": [
    {
      "coid": 1,
      "author": "访客",
      "content": "评论内容",
      "created": "2025-10-10 21:30:00",
      "parent": 0
    }
  ]
}

4️⃣ 获取博客信息

text

GET /index.php/api?token=654321&method=getbloginfo

返回:

json

{
  "success": true,
  "data": {
    "title": "我的博客",
    "description": "分享与记录",
    "keywords": "博客,技术",
    "theme": "default",
    "siteUrl": "https://example.com",
    "timezone": "Asia/Shanghai",
    "charset": "UTF-8",
    "postCount": 42
  }
}

5️⃣ 获取全部分类

text

GET /index.php/api?token=654321&method=getallcategories

返回:

json

{
  "success": true,
  "data": [
    {
      "name": "技术",
      "slug": "tech",
      "post_count": 15
    }
  ]
}

6️⃣ 获取分类文章

text

GET /index.php/api?token=654321&method=getcategoryposts&category=技术&page=1&pageSize=10

7️⃣ 搜索文章

text

GET /index.php/api?token=654321&method=search&keyword=Typecho&page=1&pageSize=10

8️⃣ 执行备份

text

GET /index.php/api?token=654321&method=backup_db
GET /index.php/api?token=654321&method=backup_files  
GET /index.php/api?token=654321&method=backup_all

若未启用备份功能或无权限,将返回错误。


🧰 插件文件说明

文件 作用
Plugin.php 插件主类,负责注册路由与配置项
Action.php 核心逻辑,处理所有 API 请求
README.md 插件说明文档

🆕 版本更新日志

v1.2.0 (2024-01-xx)

  • ✅ 完全兼容 Typecho 1.3+ 版本
  • ✅ 修复文章发布功能,支持分类和标签
  • ✅ 解决 Typecho_Common::slug() 方法不存在问题
  • ✅ 解决 Typecho_Db_Expression 类不存在问题
  • ✅ 优化数据库操作,使用更兼容的方法
  • ✅ 改进错误处理和响应信息

v1.1.0

  • 初始发布版本
  • 基础 API 功能支持

🧑‍💻 开发者信息


🧩 常见问题

Q: 启用插件后后台不显示? A: 请检查权限:chmod -R 755 /usr/plugins/Api

Q: 访问 /api 提示 access denied? A: 请确认 token 设置正确,或在插件设置页重新保存。

Q: 发布文章时分类不生效? A: 请确保分类名称正确,且使用逗号分隔多个分类。

Q: Nginx 未生效? A: 如果你使用自定义 root 目录,请确保 Typecho 的 index.php 能正常重写请求。或者,将插件版本的 API 方式替代旧的 /api.php 文件访问。

Q: 在 Typecho 1.3 中遇到类不存在错误? A: v1.2.0 已完全修复 Typecho 1.3+ 的兼容性问题,请更新到最新版本。


🪄 许可协议

本插件遵循 MIT License 协议自由使用与修改。

About

this is a light weight RESTful plugin for typecho, special for typecho 1.3.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages