uniacid= $uniacid; $config_model = new Config(); $config = $config_model->dataInfo(['uniacid'=>$uniacid]); $this->AppKey = $config['ys_appkey']; $this->Secret = $config['ys_secret']; } /** * @author chenniang * @DataTime: 2022-02-17 17:42 * @功能说明:获取令牌 */ public function getToken(){ $url = 'https://open.ys7.com/api/lapp/token/get'; $key = 'yscloud_token'; $token = getCache($key,$this->uniacid); $post_data = [ 'appKey' => $this->AppKey, 'appSecret' => $this->Secret ]; if(empty($token)){ $data = lbCurlPost($url,$post_data); $data = json_decode($data,true); if(!empty($data['code'])&&$data['code']==200){ $token = $data['data']['accessToken']; setCache($key,$token,86400*6,$this->uniacid); }else{ $token = ''; } } return $token; } /** * @author chenniang * @DataTime: 2022-02-17 17:54 * @功能说明:获取空间列表 */ public function getVideoList(){ $url = 'https://open.ys7.com/api/lapp/live/video/list'; $post_data = [ 'accessToken' => $this->getToken(), 'pageSize' => 100 ]; $data = lbCurlPost($url,$post_data); $data = json_decode($data,true); return $data; } /** * @author chenniang * @DataTime: 2022-02-17 17:57 * @功能说明:获取空间详情 */ public function getVideoInfo($deviceSerial,$channelNo=1){ $url = 'https://open.ys7.com/api/lapp/v2/live/address/get'; $key = $deviceSerial.'-2'.$channelNo; $url_data = getCache($key,$this->uniacid); if(empty($url_data)){ $post_data = [ 'accessToken' => $this->getToken(), 'deviceSerial'=> $deviceSerial, 'channelNo' => $channelNo, 'protocol' => 2, 'quality' => 2 ]; $data = lbCurlPost($url,$post_data); $data = @json_decode($data,true); if(isset($data['code'])&&$data['code']==200){ $url_data = $data['data']['url']; setCache($key,$url_data,86400,$this->uniacid); } } return $url_data; } /** * @param $deviceSerial * @param $direction * @param int $channelNo * @功能说明:开始转动 * @author chenniang * @DataTime: 2022-04-12 10:51 */ public function startTurn($deviceSerial,$direction,$channelNo=1) { $url='https://open.ys7.com/api/lapp/device/ptz/start'; $post_data = [ 'accessToken' => $this->getToken(), 'deviceSerial'=> $deviceSerial, 'channelNo' => $channelNo, 'direction' => $direction, 'speed' => 1 ]; $data = lbCurlPost($url,$post_data); $data = json_decode($data,true); return $data; } /** * @param $deviceSerial * @param $direction * @param int $channelNo * @功能说明:停止转动 * @author chenniang * @DataTime: 2022-04-12 10:51 */ public function stopTurn($deviceSerial,$direction=0,$channelNo=1) { $url='https://open.ys7.com/api/lapp/device/ptz/stop'; $post_data = [ 'accessToken' => $this->getToken(), 'deviceSerial'=> $deviceSerial, 'channelNo' => $channelNo, 'direction' => $direction, ]; $data = lbCurlPost($url,$post_data); $data = json_decode($data,true); return $data; } /** * @param $url * @param $post_data * @param string $post_type * @功能说明:发送请求 * @author chenniang * @DataTime: 2021-10-26 14:38 */ public function request($url,$post_data,$post_type='POST'){ $curl = curl_init(); $post_data = json_encode($post_data); curl_setopt_array($curl, array( CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => $post_type, CURLOPT_POSTFIELDS => $post_data, CURLOPT_HTTPHEADER => array( "Content-Type:application/json", "User-Agent:openApi", "Content-Type:application/json; charset=utf-8", "accept-encoding:gzip,deflate", "time-stamp:".time(), // "data-signature:D2C3D3C7289EAE111277999D21196D4D", "data-signature:".strtoupper(md5($this->appKey.$post_data)) ), )); $response = curl_exec($curl); $err = curl_error($curl); curl_close($curl); return json_decode($response,true); // if ($err) { // echo "cURL Error #:" . $err; // } else { // echo $response; // } } }