Files

176 lines
3.7 KiB
Markdown
Raw Permalink Normal View History

# PBootCMS GeoPublisher 安装说明
## 1. 放置文件
把本目录中的整个 `apps` 目录复制到客户 PBootCMS 网站根目录:
```text
{PBootCMS_ROOT}/apps
```
最终应存在:
```text
{PBootCMS_ROOT}/apps/api/controller/GeoPublisherController.php
{PBootCMS_ROOT}/apps/api/controller/AiseoController.php
```
这个文件只依赖 PBootCMS 原生 `core\basic\Controller``core\basic\Model``ay_content``ay_content_sort``ay_model`,不需要改后台代码,也不需要安装额外数据库表。
## 2. 开启 PBootCMS API
登录 PBootCMS 后台:
```text
全局配置 -> 配置参数 -> API
```
开启:
```text
api_open = 1
api_auth = 1
api_appid = 自定义 AppID
api_secret = 自定义密钥
```
Geo SaaS 绑定站点时填写:
```text
CMS 类型:PBootCMS
网站域名:https://www.example.com
AppID:后台 api_appid
Secret:后台 api_secret
```
## 3. 签名规则
每次请求都带:
```text
appid={api_appid}
timestamp={当前 Unix 秒级时间戳}
signature=md5(md5(appid + api_secret + timestamp))
```
示例:
```php
$signature = md5(md5($appid . $secret . $timestamp));
```
插件默认允许 300 秒时间差,便于 SaaS 服务器和客户服务器存在轻微时钟偏差。
## 4. 连通性测试
推荐入口:
```bash
curl "https://www.example.com/api.php?p=/GeoPublisher/ping&appid=APPID&timestamp=TIMESTAMP&signature=SIGNATURE"
```
如果站点 rewrite 已启用,也支持:
```bash
curl "https://www.example.com/api/GeoPublisher/ping?appid=APPID&timestamp=TIMESTAMP&signature=SIGNATURE"
```
成功返回:
```json
{
"code": 1,
"data": {
"cms_type": "pbootcms",
"plugin_version": "1.0.0",
"site_url": "https://www.example.com"
},
"msg": ""
}
```
## 5. 栏目同步
默认同步 PBootCMS 文章模型 `mcode=2` 的可用栏目:
```bash
curl "https://www.example.com/api.php?p=/GeoPublisher/categories&appid=APPID&timestamp=TIMESTAMP&signature=SIGNATURE&mcode=2"
```
兼容旧插件参数:
```text
model_hash=2
```
## 6. 发布文章
推荐使用 `POST JSON`
```bash
curl -X POST "https://www.example.com/api/GeoPublisher/publish?appid=APPID&timestamp=TIMESTAMP&signature=SIGNATURE" \
-H "Content-Type: application/json" \
-d '{
"scode": "5",
"title": "企业新闻标题",
"content": "<p>正文内容</p>",
"keywords": "关键词1,关键词2",
"description": "摘要",
"author": "Geo SaaS",
"source": "企业官网",
"status": 1
}'
```
核心字段:
```text
scode/category_id PBootCMS 栏目编码,必填
title 标题,必填
content HTML 正文,必填
status 1 发布,0 草稿
ico 缩略图,支持远程 URL 自动下载
pics 多图,支持逗号字符串或数组
date 发布时间,支持 Unix 时间戳或日期字符串
filename 自定义 URL 名称,可选
tags/keywords/description 可选
```
文章正文中的远程图片、封面 `ico`、多图 `pics` 会先下载到 PBootCMS 本地:
```text
/static/upload/image/YYYYMMDD/geo_*.jpg
```
如果图片下载或保存失败,接口会返回失败,不会把 SaaS 平台图片链接写进 PBootCMS 正文。
## 7. 更新与状态
```text
POST /api.php?p=/GeoPublisher/update
GET /api.php?p=/GeoPublisher/status&id={content_id}
```
更新接口字段和发布接口一致,额外必填:
```text
id = PBootCMS 内容 ID
```
## 8. 旧插件兼容接口
插件保留:
```text
/api.php?p=/GeoPublisher/categoryLists
/api.php?p=/GeoPublisher/articleAdd
/api.php?p=/Aiseo/categoryLists
/api.php?p=/Aiseo/articleAdd
```
用于兼容历史 `AiseoController.php` 风格调用。新 SaaS 侧建议统一使用:
```text
ping / categories / publish / update / status
```