宝塔,简单好用的服务器运维面板

当前位置:论坛首页 > 第三方应用 > Linux面板插件

API接口使用教程

发表在 第三方应用2018-12-12 11:48   [复制链接] 57 52698

发表于 2019-2-12 19:18:50 | 显示全部楼层
本帖最后由 宝塔用户_pxtxit 于 2019-2-14 12:51 编辑
宝塔用户_pxtxit 发表于 2019-2-3 19:23
都是在本地调试的,我每次登录面板IP都变,但是php的方法有几率成功,说明添加的白名单里有,c#和python都 ...

都可以,不过给的python demo不会自己创建cookie文件 ,必须要带cookies,不然请求的就是登录页面
使用道具 举报 回复 支持 反对
发表于 2019-2-26 13:15:39 | 显示全部楼层
本帖最后由 karma617 于 2019-2-26 13:18 编辑

ftp总是创建失败是为啥,站点和数据库都能成功 ,就ftp总是失败


知道了。。。ftp参数要传字符串的 true~~
使用道具 举报 回复 支持 反对
发表于 2019-2-26 23:03:18 | 显示全部楼层
文档不完善啊,我看创建网站和数据库 都没有容量这个参数嘛
使用道具 举报 回复 支持 反对
发表于 2019-3-3 20:17:57 | 显示全部楼层
使用api的话,可以关闭后台面板吗?
使用道具 举报 回复 支持 反对
发表于 2019-4-18 16:00:20 | 显示全部楼层
追忆网络 发表于 2019-2-26 23:03
文档不完善啊,我看创建网站和数据库 都没有容量这个参数嘛

本身就不支持容量控制
使用道具 举报 回复 支持 反对
发表于 2019-4-21 15:29:01 | 显示全部楼层
开发一个微信小程序版宝塔控制台,使用这些API。算侵权吗?

不算,API可以任意使用  发表于 2019-4-22 10:10
使用道具 举报 回复 支持 反对
发表于 2019-5-7 15:51:33 | 显示全部楼层
python的demobt_api类中的__http_post_cookie 函数中报错
捕获.PNG

将函数代码
  1. def __http_post_cookie(self,url,p_data,timeout=1800):
  2.     cookie_file = './' + self.__get_md5(self.__BT_PANEL) + '.cookie'
  3.     if sys.version_info[0] == 2:
复制代码
更改为

  1. <blockquote>def __http_post_cookie(self,url,p_data,timeout=1800):
  2.     cookie_file = './' + self.__get_md5(self.__BT_PANEL) + '.cookie'
  3.     with open(cookie_file,"a") as file:
  4.         file.write("# Netscape HTTP Cookie File\n")
  5.     if sys.version_info[0] == 2:
复制代码
捕获.PNG
使用道具 举报 回复 支持 反对
发表于 2019-5-15 12:37:39 | 显示全部楼层
API的IP白名单是否可以全部允许?如填入*.*.*.*
使用道具 举报 回复 支持 反对
发表于 2019-5-15 16:59:03 | 显示全部楼层
  1. #发送POST请求并保存Cookie
  2. #@url 被请求的URL地址(必需)
  3. #@data POST参数,可以是字符串或字典(必需)
  4. #@timeout 超时时间默认1800秒
  5. #return string
  6. def __http_post_cookie(self,url,p_data,timeout=1800):
  7.     cookie_file = './' + self.__get_md5(self.__BT_PANEL) + '.cookie';
  8.     if sys.version_info[0] == 2:
  9.         #Python2
  10.         import urllib,urllib2,ssl,cookielib

  11.         #创建cookie对象
  12.         cookie_obj = cookielib.MozillaCookieJar(cookie_file)

  13.         #加载已保存的cookie
  14.         if os.path.exists(cookie_file):cookie_obj.load(cookie_file,ignore_discard=True,ignore_expires=True)

  15.         ssl._create_default_https_context = ssl._create_unverified_context

  16.         data = urllib.urlencode(p_data)
  17.         req = urllib2.Request(url, data)
  18.         opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie_obj))
  19.         response = opener.open(req,timeout=timeout)

  20.         #保存cookie
  21.         cookie_obj.save(ignore_discard=True, ignore_expires=True)
  22.         return response.read()
  23.     else:
  24.         #Python3
  25.         import urllib.request,ssl,http.cookiejar
  26.         cookie_obj = http.cookiejar.MozillaCookieJar(cookie_file)
  27.         if os.path.exists(cookie_file):
  28.             cookie_obj.load(cookie_file,ignore_discard=True,ignore_expires=True)
  29.         handler = urllib.request.HTTPCookieProcessor(cookie_obj)
  30.         data = urllib.parse.urlencode(p_data).encode('utf-8')
  31.         req = urllib.request.Request(url, data)
  32.         opener = urllib.request.build_opener(handler)
  33.         response = opener.open(req,timeout = timeout)
  34.         cookie_obj.save(ignore_discard=True, ignore_expires=True)
  35.         result = response.read()
  36.         if type(result) == bytes: result = result.decode('utf-8')
  37.         return result

复制代码
修复一下官方接口的小bug,在类方法__http_post_cookie处加上一个文件判断,存在时读取文件,不存在时请求。避免了首次初始化运行不了的尴尬情况
python3和python2通用的,可以自行修复

截图

截图

好的,感谢  发表于 2019-5-15 17:41
使用道具 举报 回复 支持 反对
发表于 2019-5-16 11:53:35 | 显示全部楼层
API文档很方便,省去了使用账号密码登录的烦恼。
以前手动添加网站,真是痛苦不堪。十几台服务器。一个站几十个域名,还要为每个域名单独做证书。每天都要花一两个小时打理站点。有这种通用的API,不到50行代码,就能实现批量网站上传添加了。使用这种通用的api方式还是很赞的
放个思路给大家参考一下
  1.     def stie_run(self):
  2.         path_key = os.path.join(ssl_data['path'],ssl_data['key'])
  3.         path_csr = os.path.join(ssl_data['path'],ssl_data['crt'])
  4.         """
  5.         domain 传入参数,static 和 server 设置伪静态和nginx配置
  6.         path_key 证书key的目录 path_csr 证书csr的目录
  7.         第一步 创建网站
  8.         第二步 设置伪静态
  9.         第三步 上传SSL证书
  10.         第四步 配置文件上传
  11.         """
  12.         self.add_site(domain)  # 创建网站
  13.         self.save_file_body('static', domain)  # 设置伪静态
  14.         self.set_SSL(domain, path_key, path_csr)  # 上传SSL证书
  15.         self.save_file_body('server', domain)  # 配置文件上传
复制代码
时间仓促,不过已经能够降低重复的工作了。运行效率也明显比单个添加要简单的多了,单个服务器操作已经是分钟级别了

在if __name__下使用

在if __name__下使用
使用道具 举报 回复 支持 反对
发表于 2019-5-19 16:22:14 | 显示全部楼层
操作数据库的api,还没有吗?
使用道具 举报 回复 支持 反对
发表于 2019-6-2 00:28:53 | 显示全部楼层
我是用易语言写api
那么,请问一下  request_token = md5(string(request_time) + md5(api_sk))
token的算法就是, 时间戳拼接  MD5的密钥,然后再MD5 加密一下,是这样吗?为什么手动生成的。跟实际的不一样呢?
使用道具 举报 回复 支持 反对
发表于 2019-6-7 14:30:42 | 显示全部楼层
本帖最后由 宝塔用户_rdnzep 于 2019-6-7 14:31 编辑

微信截图_20190607142613.png 微信截图_20190607142651.png
微信截图_20190607142710.png
微信截图_20190607142727.png
上传成功。但是文件没有。有人能帮我找下问题嘛


使用道具 举报 回复 支持 反对
发表于 2019-6-7 16:10:30 | 显示全部楼层
在线等待!来个大哥。给我解决下哇

加开发者群,这种问题在论坛上没法交流  发表于 2019-6-10 10:01
使用道具 举报 回复 支持 反对
发表于 2019-6-18 23:58:35 | 显示全部楼层
密钥忘记咋办
使用道具 举报 回复 支持 反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

【求助贴,免费跟进,注意事项】

《宝塔linux面板安装使用教程汇总贴》

①错误提示截图;

②操作系统版本;

③环境信息;

确保信息详细,方便技术快速跟进

有违规内容的不能提供服务,请谅解

上班时间:周一至周六 9:00~18:30

如果紧急,官网后台提交付费工单解决

快速回复 返回顶部 返回列表