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;
}
?>