You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PHP cURL通过Bearer认证调用Brandfetch API报错求助

问题分析与解决

你的代码错误核心在于Brandfetch v2 API不支持Bearer认证,它采用的是AWS Signature Version 4认证方式,所以你用Authorization: Bearer $access_key的写法完全不符合要求,这才会返回那些关于Credential、Signature等参数缺失的错误。

修正方案

如果想快速实现调用,可以考虑改用Brandfetch的v1版本API,它支持直接使用API Key的Bearer认证,写法更简单:

改用v1 API的示例代码

$api_key = "你的Brandfetch API Key";
$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://api.brandfetch.io/v1/brands/google.com",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => array(
    "Accept: application/json",
    "Authorization: Bearer $api_key" // v1 API支持这种Bearer格式
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}

如果一定要使用v2 API,你需要实现AWS SigV4签名逻辑,这涉及以下关键步骤:

  • 生成符合ISO 8601格式的当前时间字符串,用于X-Amz-Date请求头
  • 构造规范请求结构
  • 基于你的Access Key生成签名密钥
  • 计算请求签名
  • 组装包含Credential、Signature、SignedHeaders等参数的Authorization头

内容的提问来源于stack exchange,提问作者Eleanor Gotell

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 05:45:32