首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >AuthFailure.SignatureFailure签名失败?

AuthFailure.SignatureFailure签名失败?

提问于 2020-03-15 18:52:29
回答 1关注 0查看 1.1K

出现的问题:{"Response":{"Error":{"Code":"AuthFailure.SignatureFailure","Message":"The provided credentials could not be validated. Please check your signature is correct."},"RequestId":"55d34095-ec31-4653-8567-7f949b769206"}}

代码如下:

代码语言:php
复制
<?php
$secretID="0000000";
$secretKey="1111111111";
$param['Action']="DetectFace";
$param['Version']='2018-03-01';
$param['Nonce']=rand();
$param['Timestamp']=time();
$param["Region"]="ap-guangzhou";
$param["SecretId"]=$secretID;

$img = 'E:/softwaredownload/phpstudy/WWW/magicmirror/img/me.jpg';
$imgstr = base64_encode($img);
$param['Image']=$imgstr;

ksort($param);
$signStr="GETiai.tencentcloudapi.com/?";
foreach($param as $key => $value){
    $signStr = $signStr . $key . "=" . $value . "&";
}
$signStr = substr($signStr,0,-1);
$signature = urlencode(base64_encode(hash_hmac("sha1",$signStr,$secretKey,true)));
$param['Signature'] = $signature;

ksort($param);
$signStr="https://iai.tencentcloudapi.com/?";

foreach($param as $key => $value){
    $signStr = $signStr . $key . "=" . $value . "&";
}
$signStr = substr($signStr,0,-1);
echo $signStr;

$weather=curl_init();
curl_setopt($weather,CURLOPT_URL,$signStr);
curl_setopt($weather,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($weather,CURLOPT_RETURNTRANSFER,1);
curl_setopt($weather,CURLOPT_HTTPHEADER,array(
        'Content-Type:application/x-www-form-urlencoded',
        'Host: iai.tencentcloudapi.com'
        
    )
);
$data = curl_exec($weather);
echo $data;
?>
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档