176 lines
3.7 KiB
Markdown
176 lines
3.7 KiB
Markdown
|
|
# 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×tamp=TIMESTAMP&signature=SIGNATURE"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
如果站点 rewrite 已启用,也支持:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl "https://www.example.com/api/GeoPublisher/ping?appid=APPID×tamp=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×tamp=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×tamp=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
|
|||
|
|
```
|