admin管理员组文章数量:1530987
2024年6月26日发(作者:)
开宗明义,米扑科技在使用腾讯云的
API
接口签名中,按照官方示例开发
PHP
、
Python
的接口,经常会提示签名错误
1
2
3
4
5
6
7
8
9
{
"Response"
: {
"Error"
: {
"Code"
:
"ureFailure"
,
"Message"
:
"The provided credentials could not be validated. Please check your signature is correct."
},
"RequestId"
:
"1ee6ae98-a971-ad9f-4ecc-abcd69ea1234"
}
}
本文原文,请参见米扑博客:
Python
和
PHP
对腾讯云签名
hmac_sha256
算法实现
经过多次尝试探究,发现原因有二:
1
)腾讯云官方示例不严谨,没有
urlencode()
或
()
编码导致提示签名错误
2
)腾讯官方只提供了
PHP
示例,没有提供
Python
示例,两者签名函数有一些细节
直接给出干货,下面示例是
米扑科技
封装好的腾讯云签名函数,以飨读者。
腾讯云签名:
/document/api/377/4214
阿里云签名:
/document_detail/
米扑的官网:
PHP
签名示例
1
2
3
4
5
6
7
8
9
/**
*
签名并获取
URL
结果,
json
格式返回
*
* 1.
查询弹性
IP
列表
, DescribeAddresses
* 2.
解绑弹性
IP, DisassociateAddress
* 3.
释放弹性
IP, ReleaseAddresses
* 4.
公网
IP
转弹性
IP, TransformAddress
10
11
12
13
14
15
16
*
* @param string $req_action : DescribeAddresses, DisassociateAddress, ReleaseAddresses, TransformAddress
* @param string $params :
以
&
开头,
如
&xxx=yyy
*/
function
qcloud_eip_sign(
$req_action
=
'DescribeAddresses'
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
,
$req_region
=
'ap-beijing'
,
$req_extra_params
=
''
,
$retry_NUM
=3) {
global
$QCloud_SecretId
;
global
$QCloud_SecretKey
;
// $req_action='DescribeAddresses'
// $req_region = 'ap-beijing'; // ap-guangzhou
$req_method
=
'GET'
;
// GET POST
$req_api
=
'/v2/'
;
$req_version
=
'2017-03-12'
;
$req_timestamp
=
strtotime
(
date
(
'YmdHis'
));
// 1402992826
版权声明:本文标题:Python 和 PHP 对腾讯云签名 hmac_sha256 算法实现 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1719366239a774111.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论