【代码片段】uTools Api请求

简介: 开发uTools插件时要与uToolsApi交互

开发uTools插件时要与uToolsApi交互,这里写一个获取uTools用户信息的api对接示例:

class UToolsService {

    private $plugin_id;
    private $secret;

    private $baseurl = "https://open.u-tools.cn";
    private $baseinfo_uri = "/baseinfo";

    public function __construct($plugin_id, $secret) {
        $this->plugin_id = $plugin_id;
        $this->secret = $secret;
    }

    /**
     * 获取登录基础信息
     * @param array $access_token
     * @return mixed
     */
    public function getLoginBaseInfo($access_token) {
        $params = [
            "access_token" => $access_token,
        ];

        $data = $this->sendGetRequest($this->baseinfo_uri, $params);
        return $data;
    }

    /**
     * 获取完整参数
     * @param array $params
     * @return array
     */
    private function getFullParams(array $params) {
        $params["plugin_id"] = $this->plugin_id;
        $params["timestamp"] = time();

        ksort($params);
        $str = http_build_query($params);

        $params["sign"] = hash_hmac("sha256", $str, $this->secret);
        return $params;
    }

    /**
     * 发送请求
     * @param string $uri
     * @param array $params
     * @return mixed
     */
    private function sendGetRequest($uri, $params) {
        $params = $this->getFullParams($params);
        $url = $this->baseurl . $uri . "?" . http_build_query($params);

        $header = [
            "Accept:application/json"
        ];

        $result = curl($url, null, $header);
        return $result;
    }
}

curl方法自行实现啊,这里就不写上去了。

相关文章
|
4月前
|
缓存 前端开发 中间件
[go 面试] 前端请求到后端API的中间件流程解析
[go 面试] 前端请求到后端API的中间件流程解析
|
4月前
|
开发框架 缓存 .NET
并发请求太多,服务器崩溃了?试试使用 ASP.NET Core Web API 操作筛选器对请求进行限流
并发请求太多,服务器崩溃了?试试使用 ASP.NET Core Web API 操作筛选器对请求进行限流
219 0
|
2月前
|
缓存 监控 API
抖音抖店 API 请求获取宝贝详情数据的调用频率限制如何调整?
抖音抖店API请求获取宝贝详情数据的调用频率受限,需遵循平台规则。开发者可通过提升账号等级、申请更高配额、优化业务逻辑(如缓存数据、异步处理、批量请求)及监控调整等方式来应对。
|
2月前
|
缓存 负载均衡 API
抖音抖店API请求获取宝贝详情数据、原价、销量、主图等参数可支持高并发调用接入演示
这是一个使用Python编写的示例代码,用于从抖音抖店API获取商品详情,包括原价、销量和主图等信息。示例展示了如何构建请求、处理响应及提取所需数据。针对高并发场景,建议采用缓存、限流、负载均衡、异步处理及代码优化等策略,以提升性能和稳定性。
|
23天前
|
JSON API 数据格式
携程API接口系列,酒店景点详情请求示例参考
携程API接口系列涵盖了酒店预订、机票预订、旅游度假产品预订、景点门票预订等多个领域,其中酒店和景点详情请求是较为常用的功能。以下提供酒店和景点详情请求的示例参考
|
2月前
|
JavaScript 前端开发 Java
多种语言请求API接口方法
每种语言和库的选择取决于具体需求、项目环境以及个人偏好。了解这些基本方法,开发者就可以根据项目需求选择合适的语言和库来高效地与API交互。
41 1
|
2月前
|
存储 数据可视化 JavaScript
可视化集成API接口请求+变量绑定+源码输出
可视化集成API接口请求+变量绑定+源码输出
59 4
|
3月前
|
JSON Go API
使用Go语言和Gin框架构建RESTful API:GET与POST请求示例
使用Go语言和Gin框架构建RESTful API:GET与POST请求示例
|
3月前
|
API Python
4. salt-api请求salt-minion执行任务 tornado超时报错
4. salt-api请求salt-minion执行任务 tornado超时报错
|
3月前
|
JSON 资源调度 JavaScript
Vue框架中Ajax请求的实现方式:使用axios库或fetch API
选择 `axios`还是 `fetch`取决于项目需求和个人偏好。`axios`提供了更丰富的API和更灵活的错误处理方式,适用于需要复杂请求配置的场景。而 `fetch`作为现代浏览器的原生API,使用起来更为简洁,但在旧浏览器兼容性和某些高级特性上可能略显不足。无论选择哪种方式,它们都能有效地在Vue应用中实现Ajax请求的功能。
44 4