PbootCMS 提供了一套完善的 API 接口系统,允许开发者远程调取系统数据,便于与小程序、公众号、APP 等第三方应用进行数据交互。这些接口覆盖了网站内容管理的各个方面,从基础站点信息获取到复杂的内容检索与提交操作。
在开始使用 API 前,需要在 PbootCMS 后台进行相关配置:
此外,还需在配置文件 config/database.php
中启用 API 功能:
'open_api' => 1, // 启用API接口
'api_key' => 'your_secret_key' // 设置安全密钥
客户端发起请求时必须包含三个核心参数,这是 API 调用的基础:
签名生成算法是认证的核心,其生成过程如下:
appid
、secret
和 timestamp
三个值连接成一个字符串signature
PHP 示例代码:
function generate_signature($appid, $secret, $timestamp) {
$raw_string = $appid . $secret . $timestamp;
$first_md5 = md5($raw_string);
$signature = md5($first_md5);
return $signature;
}
以下是 PbootCMS 提供的 17 类 API 接口的详细说明及使用示例。
http://域名/api.php/cms/site
http://域名/api.php/cms/site/name/title
http://域名/api.php/cms/company
http://域名/api.php/cms/company/name/name
http://域名/api.php/list/scode
http://域名/api.php/list/scode/page/2
scode
:栏目编号num/*
:控制返回数量order/*
:控制排序方式http://域名/api.php/content/id
http://域名/api.php/cms/search
keyword
:搜索关键字field
:指定搜索字段,多个用 | 隔开scode
:指定分类,多个用逗号隔开fuzzy
:等于 0 关闭模糊匹配http://域名/api.php/cms/nav
http://域名/api.php/cms/nav/scode/*
http://域名/api.php/cms/sort/scode/*
http://域名/api.php/cms/pics/id/*
http://域名/api.php/cms/slide/gid/*/num/*
gid
:幻灯片分组 IDnum
:调取数量,默认为 5http://域名/api.php/cms/link/gid/*/num/*
gid
:友情链接分组 IDnum
:调取数量,默认为 10http://域名/api.php/cms/addmsg
http://域名/api.php/cms/msg/num/*
http://域名/api.php/cms/msg/num/*/page/2
http://域名/api.php/cms/addform/fcode/*
fcode
为表单编码http://域名/api.php/cms/form/fcode/*
fcode
:表单编码num/*
:控制条数page/*
:控制页码以下示例展示了如何在网站内部使用 Ajax 调用 API 获取站点信息:
$(document).ready(function (e) {
var url = '/api.php/cms/site';
$.ajax({
type: 'POST',
url: url,
dataType: 'json',
data: {
appid: '{pboot:appid}',
timestamp: '{pboot:timestamp}',
signature: '{pboot:signature}'
},
success: function (response, status) {
if(response.code){
// 获取数据成功
alert(response.data.title);
}else{
// 返回错误数据
alert(response.data);
}
},
error:function(xhr,status,error){
// 返回数据异常
alert('返回数据异常!');
}
});
});
对于微信小程序,可以使用如下方式调用 API:
wx.request({
url: 'https://您的域名.com/api.php/cms/site',
method: 'POST',
data: {
appid: '您的AppID',
timestamp: '当前时间戳',
signature: '生成的签名'
},
success: (res) => {
if(res.data.code === 1) {
console.log(res.data.data.title);
}
}
})
对于多语言网站,可以通过 acode
参数指定语言:
http://域名/api.php/cms/site/acode/en
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。