empty($system)? new stdClass():$system, 'params'=>empty($params)? new stdClass():$params, 'id'=>'01' ]); $ret = curl_post($data, $url); $utf8 = iconv('utf-8', 'UTF-8', $ret); //echo 'RESULT GET ADMIN TOKEN:
'.nl2br($utf8 ).'
'; $obj = json_decode($utf8); $Token = $obj->result->data->accessToken; echo 'Token:
'.nl2br($Token ).'
'; //////////////////////////////////////// // CREAT A SUB ACCOUNT // //////////////////////////////////////// $url = $APIurl.'createSubAccount' ; $params = [ 'account'=>$SubAccount, 'token'=>$Token ]; $system = CreatSystemParams ($appId,$appSecret); $data = json_encode([ 'system'=>empty($system)? new stdClass():$system, 'params'=>empty($params)? new stdClass():$params, 'id'=>'02' ]); $ret = curl_post($data, $url); $utf8 = iconv('utf-8', 'UTF-8', $ret); //echo '
RESULT CREAT SUB ACCOUNT:
'.nl2br($utf8 ).'
'; //////////////////////////////////////// // GET SUB ACCOUNT OPENID // //////////////////////////////////////// $url = $APIurl.'getOpenIdByAccount' ; $params = [ 'account'=>$SubAccount, 'token'=>$Token ]; $system = CreatSystemParams ($appId,$appSecret); $data = json_encode([ 'system'=>empty($system)? new stdClass():$system, 'params'=>empty($params)? new stdClass():$params, 'id'=>'03' ]); $ret = curl_post($data, $url); $utf8 = iconv('utf-8', 'UTF-8', $ret); //echo '
RESULT GET OPEN ID:
'.nl2br($utf8 ).'
'; $obj = json_decode($utf8); $openid = $obj->result->data->openid; //echo 'OpneID:
'.nl2br($openid ).'
'; //////////////////////////////////////// // GET SUB ACCOUNT TOKEN // //////////////////////////////////////// $url = $APIurl.'subAccountToken' ; $params = [ 'openid'=>$openid, 'token'=>$Token ]; $system = CreatSystemParams ($appId,$appSecret); $data = json_encode([ 'system'=>empty($system)? new stdClass():$system, 'params'=>empty($params)? new stdClass():$params, 'id'=>'04' ]); $ret = curl_post($data, $url); $utf8 = iconv('utf-8', 'UTF-8', $ret); //echo '
RESULT GET SUBID TOKEN:
'.nl2br($utf8 ).'
'; $obj = json_decode($utf8); $openidToken = $obj->result->data->accessToken; echo 'OpneID Token:
'.nl2br($openidToken ).'
'; //////////////////////////////////////// // ADD SUB ACCOUNT POLICY // //////////////////////////////////////// $url = $APIurl.'addPolicy' ; $params = [ 'openid'=>$openid, 'token'=>$Token, 'policy'=> [ 'statement'=> [ [ 'permission'=>'DevControl', 'resource'=> [ 'dev:'.$deviceID, 'cam:'.$deviceID.':1' ] ] ] ] ]; $system = CreatSystemParams ($appId,$appSecret); $data = json_encode([ 'system'=>empty($system)? new stdClass():$system, 'params'=>empty($params)? new stdClass():$params, 'id'=>'05' ]); $ret = curl_post($data, $url); $utf8 = iconv('utf-8', 'UTF-8', $ret); //echo '
RESULT ADD POLICY:
'.nl2br($utf8 ).'
'; //////////////////////////////////////// // RUN OPEN-CLOSE CAMERA SETTINGS // //////////////////////////////////////// $url = $APIurl.'setDeviceCameraStatus' ; $params = [ 'enableType'=>'closeCamera', 'enable'=>true, 'deviceId'=>$deviceID, 'channelId'=>'0', 'token'=>$openidToken ]; $system = CreatSystemParams ($appId,$appSecret); $data = json_encode([ 'system'=>empty($system)? new stdClass():$system, 'params'=>empty($params)? new stdClass():$params, 'id'=>'06' ]); $ret = curl_post($data, $url); $utf8 = iconv('utf-8', 'UTF-8', $ret); echo '
OPEN/CLOSE CAMERA RESULT:
'.nl2br($utf8 ).'
'; //////////////////////////////////////// // SET LED OFF // //////////////////////////////////////// $url = $APIurl.'setDeviceCameraStatus' ; $params = [ 'enableType'=>'breathingLight', 'enable'=>false, 'deviceId'=>$deviceID, 'channelId'=>'0', 'token'=>$openidToken ]; $system = CreatSystemParams ($appId,$appSecret); $data = json_encode([ 'system'=>empty($system)? new stdClass():$system, 'params'=>empty($params)? new stdClass():$params, 'id'=>'06' ]); $ret = curl_post($data, $url); $utf8 = iconv('utf-8', 'UTF-8', $ret); //echo '
LIGHT RESULT:
'.nl2br($utf8 ).'
'; //////////////////////////////////////////////////////////////////////////////////// function curl_post($data,$url) { $ch = curl_init(); $res= curl_setopt ($ch, CURLOPT_URL,$url); var_dump($res); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); $result = curl_exec ($ch); curl_close($ch); if ($result == NULL) { return 0; } return $result; } function CreatSystemParams($appId,$appSecret) { $time= strtotime(date('Y-m-d H:i:s',time())); $nonce = rand(); $signStr="time:$time,nonce:$nonce,appSecret:$appSecret"; $sign=md5($signStr); $system = [ 'ver'=>'1.0', 'sign'=>$sign, 'appId'=>$appId, 'time'=>$time, 'nonce'=>$nonce ]; return $system; } ?>