我正在开发一个 PHP 脚本来使用 Iconomi API,但我遇到了身份验证问题。
根据documentation,您必须创建一个签名并将其附加到标题中。但是 curl_exec 函数返回 false,这意味着它失败了。
这些是说明:
<块引用>创建请求 所有 REST 请求都必须包含以下标头:
<块引用>签署消息 您通过使用 > prehash 字符串时间戳 + 方法 + requestPath + 正文(其中 + 表示字符串连接)上的 base64 解码密钥创建 sha512 HMAC 来生成 ICN-SIGN 标头,并对输出进行 base64 编码,其中:
<块引用>这是我的代码:
function call_iconomi_api()
{
$url = 'https://api.iconomi.com';
$api_key = get_field('iconomi_api_key', 'option');
$api_secret = get_field('iconomi_api_secret', 'option');
$timestamp = round(microtime(true) * 1000);
$request_path = '/v1/assets';
$message = $timestamp . 'GET' . $request_path;
$signature = base64_encode(hash_hmac('sha512', $message, $api_secret));
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url . $request_path);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'ICN-API-KEY: ' . $api_key,
'ICN-SIGN: ' . $signature,
'ICN-TIMESTAMP: ' . $timestamp
));
$result = curl_exec($curl);
curl_close($curl);
return $result;
}