途狐GPS接口调用
?
最近有一个项目需要对接途狐GPS,这里我写了一个demo,方便我们来调用途狐GPS的相关接口
途狐GPS接口文档:http://opendoc.tuhugc.com/thg...
途狐GPSdemo:
'application/x-www-form-urlencoded'
];
/**
* @var string expires access_token失效事件
*/
public $expires = '7200';
public function __construct($api_url, $data = https://www.it610.com/article/[], $method ='POST')
{$this->access_token = Yii::$app->cache->get('tuhu_access_token');
$this->data = https://www.it610.com/article/['appKey' => $this->app_key,
'v' => '1.0',
'timestamp' => date('Y-m-d H:i:s'),
'signMethod' => 'md5',
'format' => 'json',
];
if (empty($this->access_token)) {
$this->access_token = $this->getAccessToken();
}
if ($data) {
$this->data = https://www.it610.com/article/ArrayHelper::merge($this->data, $data);
}
$this->url = $this->url . $api_url;
}/**
* 调用途狐接口
*/
public function curl()
{
$sign = $this->signMd5($this->data);
$this->data['sign'] = $sign;
$this->header['X-Access-Token'] = $this->access_token;
$client = new Client();
$response = $client->createRequest()
->setMethod($this->method) // 请求方式
->setUrl($this->url)// 请求地址
->setData($this->data)
->setHeaders($this->header)
->send();
if ($response->isOk) {
$result = isset($response->data['result']) ? $response->data['result'] : [];
return $result;
}Yii::$app->cache->delete('tuhu_access_token');
return false;
}public function getAccessToken()
{
$data = https://www.it610.com/article/$this->data;
$url = $this->url . '/v1/token/get';
//私有参数
$data['userId'] = $this->user_id;
$data['expiresIn'] = $this->expires;
$sign = $this->signMd5($data);
$data['sign'] = $sign;
$client = new Client();
$response = $client->createRequest()
->setMethod('POST') // 请求方式
->setUrl($url)// 请求地址
->setData($data)
->setHeaders($this->header)
->send();
$accessToken = isset($response->data['result']['accessToken']) ? $response->data['result']['accessToken'] : '';
if ($accessToken) {
Yii::$app->cache->set('tuhu_access_token', $accessToken, $this->expires);
return $accessToken;
}return '';
}/**
* md5签名
*/
public function signMd5($data)
{
//获取待签名字符串
ksort($data);
reset($data);
$query = '';
foreach ($data as $key => $value) {
$query .= $key . $value;
}$sign = $this->app_secret . $query . $this->app_secret;
//签名
return strtoupper(md5($sign));
}}
【途狐GPS接口调用】需要将demo中url,app_key,app_secret,user_id改成您自己的即可
使用途狐GPSdemo简单示例
回去GPS车辆实时定位
$tuhu = new Tuhu('/v1/device/location/list', [
'userId' => '用户ID',
'mapType' => 'GOOGLE',//GOOGLE/BAIDU
]);
$data = https://www.it610.com/article/$tuhu->curl();
如上既可以获取到GPS车辆实时定位,其他相关接口调用方式参照如上即可
推荐阅读
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 2020-04-07vue中Axios的封装和API接口的管理
- 调取接口时报404错误(ID:16)
- CICC(脑机接口,科幻几近成真())
- 接口|axios接口报错-参数类型错误解决
- 190403|190403 - Jmeter压测接口
- JavaScript|vue 基于axios封装request接口请求——request.js文件
- 微信小程序请求接口格式
- 简易有效Api接口防攻击策略