# :-: 宝塔API全功能接管接口
官方程序中默认使用**封装**的方法,自定义仅供开发参考。
## 一、封装使用
`bt($sid, $go, $data, $pid, $type)`
| 参数 | 说明 |
| --- | --- |
| $sid | 服务器ID,必须 |
| $go | 请求功能,必须 |
| $data | 传送数组,必须<br>可参考 系统后台->搭建系统->功能配置->各项中能中的 示范请求 |
| $pid | 所操作的站点ID,选填|
| $type | 对接模式,默认为官方接口,选填<br> 1:官方接口 2:cmspro接口 需修改__init__.py(可参考 【宝塔通用就接口】) |
**1、系统封装使用:采用官方 url**
```
/**
* 检查面板更新
*/
$data = array(
'check' => 'true'
);
$server = bt('10001', '/config?action=get_token', $data, 0);
if ($server['token'] != true) {
echo '提交失败,请根据提示调整。<br>' . $server["msg"];
var_dump($server);
exit;
} else {
exit('yes');
}
```
2、系统精简请求
```
/**
* 检查面板更新
*/
$data = array(
'check' => 'true'
);
$server = bt('10001', 'UpdatePanel', $data, 0);
if ($server['token'] != true) {
echo '提交失败,请根据提示调整。<br>' . $server["msg"];
var_dump($server);
exit;
} else {
exit('yes');
}
```
系统已做好**全局**封装直接使用即可,也可以拿去做别的封装参考。
参考封装
```
/**
* 宝塔系统对接
* @param type $sid 服务器ID
* @param type $gourl 所操作的URL 格式为 /data?action=getKey 形式
* @param type $data 发送的数据数组形式
* @param type $pid 所操作的站点ID,选填
* @param type $type 对接模式,默认为官方接口 (1:官方接口 2:cmspro接口 需修改__init__.py)
* @return Array
*/
function bt($sid, $gourl, $data, $pid = 0, $type = 1) {
$row = DB('setup_panel_bt')->where("id=$sid")->find();
if ($row['id'] > 0) {
//配置服务器信息
$bt_data = array(
'bt_panel' => $row['ssl'] . '://' . $row['api'] . ':' . $row['port'], //服务器地址
'bt_key' => $row['pass'], //服务器秘钥
'bt_cookie' => DATA . 'temp/', // COOKIE保存目录
'bt_type' => $type, //对接模式,默认为官方接口 (1:官方接口 2:cmspro接口)
'bt_path' => $row['entry'], //接口路径,仅对cmspro接口有效
'bt_sid' => $row['id'], //对接的服务器ID
'bt_pid' => $pid, //所操作的项目ID
);
//链接对应服务器的宝塔
$_bt = new BT_SYS($bt_data);
//执行操作命令
return $_bt->Get($gourl, $data);
} else {
return '服务器不存在或不属于宝塔面板!';
}
}
```
## 二、自定义使用
**初始化**
```
$bt_data = array(
'bt_panel' => $_POST['ssl'] . '://' . $_POST['api'] . ':' . $_POST['port'], //服务器地址
'bt_key' => $_POST['pass'], //服务器秘钥
'bt_cookie' => DATA . 'temp/', // COOKIE保存目录
'bt_type' => 1, //对接模式,默认为官方接口 (1:官方接口 2:cmspro接口)
'bt_path' => null, //接口路径,仅对cmspro接口有效
'bt_sid' => $_POST['id'], //对接的服务器ID
);
$bt = new BT_SYS($bt_data);
```
**功能使用**
1、采用官方 url
```
/**
* 检查面板更新
*/
$data = array(
'check' => 'true'
);
$server = $bt->Get('/config?action=get_token', $data);
if ($server['token'] != true) {
echo '提交失败,请根据提示调整。<br>' . $server["msg"];
var_dump($server);
exit;
} else {
exit('yes');
}
```
2、系统精简请求
注:下方用的`UpdatePanel`参考 系统后台->搭建系统->功能配置->各项中能中的`值`
```
/**
* 检查面板更新
*/
$data = array(
'check' => 'true'
);
$server = $bt->Get('UpdatePanel', $data);
if ($server['token'] != true) {
echo '提交失败,请根据提示调整。<br>' . $server["msg"];
var_dump($server);
exit;
} else {
exit('yes');
}
```
## 三、宝塔通用就接口
这种情况为备用方案,在宝塔接口无法使用的情况下使用。
**!!!!一定要在修改前备份修改的文件!**
此方法,修改后重启面板即可,服务重启面板无法进入面板。
```
linux登陆ssh 输入bt 选择修复面板,然后尝试重新修改或放弃
win登陆3389覆盖同版本的文件,然后尝试重新修改或放弃
```
此方法完成后可实现免密码登录面板,因此切勿泄露url信息给外人。
免登录访问地址为:`http://服务器IP:端口/login?api地址=密钥`
**再次提醒:本方法仅支持宝塔6.0以上的面板,每次更新、重置面板一定要重新检查是否有以下代码。**
1.打开面板程序文档
```
windows 路径 D:\BtSoft\panel\BTPanel\__init__.py
linux 路径 /www/server/panel/BTPanel/__init__.py
```
2.找到
```
if hasattr(get,'dologin'):
```
在**上面**增加增加以下代码
建议用 sublime 编辑器下载下来进行编辑。
特别注意:一定要保持缩进,不然面板无法运行。如最下面的图
```
#宝塔对接接口开始
#设置项开始
cp_api_path = 'cmspro' # cmspro 为api地址,请填写与后台设置的一致 实际地址为/login?cmspro=123456
cp_api_key = '123456' # 123456 为密钥,请填写与后台设置的一致
#设置项结束
if hasattr(get,cp_api_path):
api = request.args.get(cp_api_path, '').strip()
if api==cp_api_key:
session['admin_auth'] = True
session['login'] = True
login_path = '/'
return redirect(login_path)
#宝塔对接接口结束
```
**正确的**
![](https://img.kancloud.cn/6d/fa/6dfa090a1361fd676dd4b9e470e144e5_791x362.jpg)
**错误的**
![](https://img.kancloud.cn/ac/0f/ac0f75fb24ac41a30047f77d7fae3fbf_831x322.jpg)
- 关于CMSPRO
- 安装使用
- 首次使用
- 功能使用
- 系统后台
- 系统
- 系统配置
- 开发使用
- 基础学习
- php如何修改文件创建时间
- 类方法
- 系统框架
- 系统入口框架
- URL处理
- 自动附加封装类、函数入口
- 内置应用
- GET与POST
- 字符控制
- 多语言使用
- 数据库使用
- 页面跳转
- 数组控制
- 时间相关
- 文件操作
- 获取系统设置的应用目录
- IP获取与解析
- 数据分页
- 内置插件
- 短信发送
- 信息模板
- 消息操作
- 消息操作(旧)
- 资金操作
- 优惠券
- 积分操作
- 服务器接口
- 宝塔接口
- 域名接口
- 西部数据
- whois查询
- 事件管理器
- 规则管理器
- 电子邮件
- 常用代码
- 数据获取与分页
- 模型自动构建表单
- 排版布局
- 常用样式
- 编辑表单
- tab选项卡
- JS相关
- 插件
- 钩子
- 高级进阶
- 消息和模板组合使用
- API接口
- 充值支付
- 积分充值兑换
- 短信验证码
- 邮箱验证码
- 微信消息模板
- 获取货币信息
- 获取积分信息
- 商品操作
- 信息反馈
- LayIM相关
- 自定义一级URL
- 自定义功能
- 用户中心
- 网站管理
- 模板引擎v2
- 基础学习
- 变量输出
- 使用函数
- 运算符
- 原样输出
- 模板注释
- 模板继承
- 包含文件
- 内置标签
- 循环标签
- 比较标签
- 条件判断
- 资源文件加载
- 标签嵌套
- 原生PHP
- 定义标签
- 功能应用
- 站点统计
- 数据列表
- 单条数据
- 功能动作
- 账户资金
- 账户积分
- 网站导航
- 从零使用
- 结构了解
- 基础工作
- 模板引擎v1
- 模板标签
- 导航菜单
- 获取数据列表
- 获取单条数据
- 广告以及连接
- if判断
- 判断是否登录
- 判断系统变量
- 自定义判断
- 常规判断
- 模板表单
- 高级使用
- 前后分离v1
- 通用
- 支付
- 积分
- 论坛
- 下载
- 微信
- 云服务SDK开发
- 通用请求