因为业务的需要,我们要把本地的人员信息上传到腾讯的人员库,这个呢就直接看代码吧,
function curl_request($url, $type, $data = false, $header = [], $timeout = 0) { $cl = curl_init(); curl_setopt($cl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($cl, CURLOPT_HEADER, true); if (count($header) > 0) { curl_setopt($cl, CURLOPT_HTTPHEADER, $header); } curl_setopt($cl, CURLOPT_NOBODY, 0); $type = strtoupper($type); if ($type == 'POST' || $type == "PUT") { curl_setopt($cl, CURLOPT_POST, true); curl_setopt($cl, CURLOPT_POSTFIELDS, $data); } if ($type == 'GET' && is_array($data)) { if (stripos($url, "?") === false) { $url .= '?'; } $url .= http_build_query($data); } curl_setopt($cl, CURLOPT_URL, $url); $response = curl_exec($cl); var_dump($response); curl_close($cl); } function signTC3($skey, $date, $service, $str2sign) { $dateKey = hash_hmac("SHA256", $date, "TC3" . $skey, true); $serviceKey = hash_hmac("SHA256", $service, $dateKey, true); $reqKey = hash_hmac("SHA256", "tc3_request", $serviceKey, true); return hash_hmac("SHA256", $str2sign, $reqKey); } function tencent_api($action,$params){ $time = time(); $payload = json_encode($params); // var_dump($payload); // exit; $payloadHash = hash("SHA256", $payload); $canonicalHeaders = "content-type:application/json\n" . "host:iai.ap-beijing.tencentcloudapi.com\n"; $canonicalRequest = "POST\n" . "/\n" . "\n" . $canonicalHeaders . "\n" . "content-type;host\n" . $payloadHash; date_default_timezone_set('UTC'); $date = date("Y-m-d", $time); $str2sign = "TC3-HMAC-SHA256\n" . $time . "\n" . $date . "/iai/tc3_request\n" . hash("SHA256", $canonicalRequest); $signature = signTC3("JymV3QfonbIXTbnu", $date, 'iai', $str2sign); $auth = "TC3-HMAC-SHA256 Credential=iNrBOTDINNK775YO9/" . $date . "/iai/tc3_request" . ", SignedHeaders=content-type;host, Signature=" . $signature; $headers = [ "Content-Type: application/json", "Host: iai.ap-beijing.tencentcloudapi.com", "X-TC-Action: CreatePerson", "X-TC-RequestClient: SDK_PHP_3.0.74", "X-TC-Timestamp: " . $time, "X-TC-Version: 2018-03-01", "X-TC-Region: ap-beijing", "Authorization: " . $auth ]; $post_data = json_encode($params); $_record = curl_request('https://iai.ap-beijing.tencentcloudapi.com/', 'post', $post_data, $headers,3); // var_dump($_record); } $mysql = new mysqli("IP", "账户名", "密码","库名" ); if (mysqli_connect_error()) { die("数据库连接失败: " . mysqli_connect_error()); } $info="select * from 表名"; $res=mysqli_query($mysql, $info); while($arr = mysqli_fetch_array($res, MYSQLI_ASSOC)){ $PersonId=$arr['id']; $url=$arr['img_url']; $gender=$arr['gender']; if($gender==0){ $gender=2; }else{ $gender=1; } $params = [ "Url" =>$url, "GroupId" => "1000", //人员库id "PersonName" =>$arr['name'], "PersonId" => $PersonId, "PersonExDescriptionInfos"=>[ [ "PersonExDescriptionIndex" =>0, "PersonExDescription" =>$arr['face_info'], ] ], "Gender"=>$gender ]; print_r(tencent_api('CreatePerson', $params )); // exit; }上面代码基本可以直接复制粘贴拿来使用,签名地方不明白的可以看一下腾讯云的签名,连接数据哭的地方需要修改里面mysql的数据库信息即可,剩下的其他信息看自己需求适当修改即可!!!!