karma617 发表于 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的话,可以关闭后台面板吗?

Youngxj 发表于 2019-4-18 16:00:20

追忆网络 发表于 2019-2-26 23:03
文档不完善啊,我看创建网站和数据库 都没有容量这个参数嘛

本身就不支持容量控制

thinkmoon 发表于 2019-4-21 15:29:01

开发一个微信小程序版宝塔控制台,使用这些API。算侵权吗?

宝塔用户_cwouwb 发表于 2019-5-7 15:51:33

python的demobt_api类中的__http_post_cookie 函数中报错


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

<blockquote>def __http_post_cookie(self,url,p_data,timeout=1800):
    cookie_file = './' + self.__get_md5(self.__BT_PANEL) + '.cookie'
    with open(cookie_file,"a") as file:
      file.write("# Netscape HTTP Cookie File\n")
    if sys.version_info == 2:

宝塔用户_zmlwqe 发表于 2019-5-15 12:37:39

API的IP白名单是否可以全部允许?如填入*.*.*.*

宝塔用户_xqockp 发表于 2019-5-15 16:59:03

#发送POST请求并保存Cookie
#@url 被请求的URL地址(必需)
#@data POST参数,可以是字符串或字典(必需)
#@timeout 超时时间默认1800秒
#return string
def __http_post_cookie(self,url,p_data,timeout=1800):
    cookie_file = './' + self.__get_md5(self.__BT_PANEL) + '.cookie';
    if sys.version_info == 2:
      #Python2
      import urllib,urllib2,ssl,cookielib

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

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

      ssl._create_default_https_context = ssl._create_unverified_context

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

      #保存cookie
      cookie_obj.save(ignore_discard=True, ignore_expires=True)
      return response.read()
    else:
      #Python3
      import urllib.request,ssl,http.cookiejar
      cookie_obj = http.cookiejar.MozillaCookieJar(cookie_file)
      if os.path.exists(cookie_file):
            cookie_obj.load(cookie_file,ignore_discard=True,ignore_expires=True)
      handler = urllib.request.HTTPCookieProcessor(cookie_obj)
      data = urllib.parse.urlencode(p_data).encode('utf-8')
      req = urllib.request.Request(url, data)
      opener = urllib.request.build_opener(handler)
      response = opener.open(req,timeout = timeout)
      cookie_obj.save(ignore_discard=True, ignore_expires=True)
      result = response.read()
      if type(result) == bytes: result = result.decode('utf-8')
      return result

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

宝塔用户_xqockp 发表于 2019-5-16 11:53:35

API文档很方便,省去了使用账号密码登录的烦恼。
以前手动添加网站,真是痛苦不堪。十几台服务器。一个站几十个域名,还要为每个域名单独做证书。每天都要花一两个小时打理站点。有这种通用的API,不到50行代码,就能实现批量网站上传添加了。使用这种通用的api方式还是很赞的;P
放个思路给大家参考一下
    def stie_run(self):
      path_key = os.path.join(ssl_data['path'],ssl_data['key'])
      path_csr = os.path.join(ssl_data['path'],ssl_data['crt'])
      """
      domain 传入参数,static 和 server 设置伪静态和nginx配置
      path_key 证书key的目录 path_csr 证书csr的目录
      第一步 创建网站
      第二步 设置伪静态
      第三步 上传SSL证书
      第四步 配置文件上传
      """
      self.add_site(domain)# 创建网站
      self.save_file_body('static', domain)# 设置伪静态
      self.set_SSL(domain, path_key, path_csr)# 上传SSL证书
      self.save_file_body('server', domain)# 配置文件上传时间仓促,不过已经能够降低重复的工作了。运行效率也明显比单个添加要简单的多了,单个服务器操作已经是分钟级别了:lol

Neoman 发表于 2019-5-19 16:22:14

操作数据库的api,还没有吗?

longlong464 发表于 2019-6-2 00:28:53

我是用易语言写api
那么,请问一下request_token = md5(string(request_time) + md5(api_sk))
token的算法就是, 时间戳拼接MD5的密钥,然后再MD5 加密一下,是这样吗?为什么手动生成的。跟实际的不一样呢?

宝塔用户_rdnzep 发表于 2019-6-7 14:30:42

本帖最后由 宝塔用户_rdnzep 于 2019-6-7 14:31 编辑




上传成功。但是文件没有。有人能帮我找下问题嘛


宝塔用户_rdnzep 发表于 2019-6-7 16:10:30

在线等待!来个大哥。给我解决下哇

wlkj 发表于 2019-6-18 23:58:35

密钥忘记咋办

Mute 发表于 2019-6-28 15:56:54

什么时候能出一套完整版的api文档,没有技术,有点看不懂这个
页: 1 2 [3] 4 5 6 7 8 9 10 11
查看完整版本: API接口使用教程