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

PHP调用Google商家评论API返回false,求排查问题

代码问题分析与修正

你的代码返回false是因为存在多个关键错误,以下是具体问题和修复方案:

1. 认证方式完全错误

Google My Business API 不支持HTTP Basic认证,你设置的CURLOPT_HTTPAUTH和CURLOPT_USERPWD属于无效配置,直接移除这两行代码。

获取商家评论需要使用OAuth 2.0认证(涉及个人账户商家数据时);若仅获取公开评论,可通过API Key传递,但必须用正确的查询参数方式,而非Basic Auth。

2. URL格式错误

你的URL中查询参数用了&key,但正确格式应该是?key(路径末尾是/reviews,无前置参数),错误符号会导致API识别无效路径。

原错误URL:

https://mybusiness.googleapis.com/v4/accounts/[客户端ID]/locations/[位置ID]/reviews&key=[API密钥]

修正后URL(注意?key):

https://mybusiness.googleapis.com/v4/accounts/[正确账户ID]/locations/ChIJq2WiArxx5kcRWeHeXpoao90/reviews?key=[你的API密钥]

3. 账户ID使用错误

URL中accounts/后面的参数应该是你的Google My Business账户ID(通常为纯数字字符串),而你填的是OAuth客户端ID(00925334976-bgoe7tarvjisj9s6do9lgafmp4se7n99.apps.googleusercontent.com),这会导致API无法定位到你的账户。

你可以在Google My Business控制台或API Explorer中找到正确的账户ID。

4. 缺少错误排查逻辑

当curl_exec()返回false时,你没有获取具体错误信息,无法定位问题。需要在代码中添加错误捕获:

修正后的代码示例

<?php
function CallAPI($method, $url, $data = false)
{
    $curl = curl_init();

    switch ($method)
    {
        case "POST":
            curl_setopt($curl, CURLOPT_POST, 1);
            if ($data)
                curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
            break;
        case "PUT":
            curl_setopt($curl, CURLOPT_PUT, 1);
            break;
        default:
            if ($data)
                $url = sprintf("%s?%s", $url, http_build_query($data));
    }

    // 移除错误的Basic Auth配置
    // curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    // curl_setopt($curl, CURLOPT_USERPWD, "...");

    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    // 开启SSL验证(生产环境建议保留)
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);

    $result = curl_exec($curl);

    // 捕获并输出curl错误
    if ($result === false) {
        echo "CURL错误信息: " . curl_error($curl);
    }

    curl_close($curl);

    return $result;
}

// 替换为正确的账户ID和API密钥
$url = 'https://mybusiness.googleapis.com/v4/accounts/[你的正确账户ID]/locations/ChIJq2WiArxx5kcRWeHeXpoao90/reviews?key=[你的API密钥]';
var_dump(CallAPI('GET', $url));
?>

额外注意事项

  • 确保你的API Key已在Google Cloud控制台启用Google My Business API,并设置了正确的IP或域名白名单。
  • 若需获取非公开商家数据(如未公开的评论),必须使用OAuth 2.0流程获取访问令牌,在请求头中添加Authorization: Bearer [访问令牌],而非API Key。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:15:33