记一次bthost接口请求例子

关于bthost

btHost(btai.cc)是一款基于宝塔面板开发的一款用于独立控制虚拟主机管理的程序,具有丰富的API,强大管理功能,丰富的模块,完整的权限控制,自适配Linux、Windows版宝塔面板(最新)

使用文档:https://www.kancloud.cn/youngxj/bthost_manual/1926353

api开发文档:https://docs.apipost.cn/view/bad40855d7b411f5#2685899

Api的简单使用

首先就是官方的接口demo

1.公共参数

就像官方所说,公共参数,发起调用时必须存在

请求参数说明请求方式
timeuinx当前时间戳1598500617get、post
random随机字符串,每次请求时随机生成SPZJoBget、post
signature签名,请查看下文签名生成方法A2F18OXO6UEYS4FSHEP8Q3PLR9OZ4N0Zget、post

2.请求示例(其中signature值为签名,签名方法具体看第四步)

https://bthost.yum6.cn/api/vhost/index?time=1598500617&random=SPZJoB&signature=A2F18OXO6UEYS4FSHEP8Q3PLR9OZ4N0Z

3.后台令牌设置

图片[1]-记一次bthost接口请求例子-青柠博客

4.签名方法

PHP示例

$data['time']   = time();
$data['random'] = mt_rand(); 
$data['token']  = $access_token;    //API通信密钥 自行配置的令牌,不清楚可看概述章节。
sort($data,SORT_STRING);
$str = implode($data);
$signature = md5($str);
$signature = strtoupper($signature);    //最终得到加密后全大写的签名

PHP demo

<?php

$api = 'https://bthost.yum6.cn/api/vhost';      // API地址,bthost.yum6.cn替换自己的域名或IP
$access_token = '55744dsadasd';                 // API通信密钥 自行配置的令牌,不清楚可看概述章节。
$data['time']   = time();
$data['random'] = mt_rand();
$data['token']  = $access_token;
$datas = $data;

sort($data, SORT_STRING);
$str = implode($data);
$signature = md5($str);
$signature = strtoupper($signature);

unset($datas['token']);                          // 安全起见,不传递token参数
$get_data = http_build_query($datas);
$url = $api. '/index?'. $get_data. '&signature='.$signature;
echo file_get_contents($url);

js请求demo

function timest() {
  var tmp = Date.parse( new Date() ).toString();
  tmp = tmp.substr(0,10);
  return tmp;
}

function randomString(e) {  
  e = e || 32;
  var t = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678",
  a = t.length,
  n = "";
  for (i = 0; i < e; i++) n += t.charAt(Math.floor(Math.random() * a));
  return n;
}

function implode (glue, pieces) {
  var i = '',
    retVal = '',
    tGlue = '';
  if (arguments.length === 1) {
    pieces = glue;
    glue = '';
  }
  if (typeof pieces === 'object') {
    if (Object.prototype.toString.call(pieces) === '[object Array]') {
      return pieces.join(glue);
    }
    for (i in pieces) {
      retVal += tGlue + pieces[i];
      tGlue = glue;
    }
    return retVal;
  }
  return pieces;
}

$timesss = timest();                    // 时间戳
$randdddd = randomString(6);            // 随机字符
$acctoken = '0VWx31Gd2kc5';             // API通信密钥 自行配置的令牌,不清楚可看概述章节。
$data = [$timesss,$randdddd,$acctoken];
$data.sort();
$str = implode($data);
$signature = $.md5($str);
$signature = $signature.toUpperCase();    //最终得到加密后全大写的签名

python请求Demo

import requests
import time
import random
import hashlib
def bt_api(): 
    t=int(time.time())
    r1=random.sample('ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678',6)
    r=r1[0]+r1[1]+r1[2]+r1[3]+r1[4]+r1[5]#随机数
    token='API通信密钥 自行配置的令牌'
    m=m=str(t)+str(r)+str(token)
    m1 = hashlib.md5()
    m1.update(m.encode(encoding='utf-8'))
    m2=m1.hexdigest().upper()  #得到的签名
    url='https://bthost.yum6.cn/api/vhost/index?time='+str(t)+'&random='+r+'&signature='+m2
    res=requests.get(url).text

    print(res)
bt_api()

© 版权声明
THE END
喜欢就支持一下吧
点赞16赞赏 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容