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

PHP调用Google Search Console API出现invalid_grant错误求助

解决Google Search Console API返回"invalid_grant"错误的方案

可能的错误原因及解决步骤

  • 刷新令牌失效
    Google刷新令牌会因6个月未使用、用户改密码、用户撤销应用授权、安全策略更新等情况失效。解决:删掉本地保存的token文件,重新走授权流程获取新令牌。

  • 凭证配置冲突
    代码里同时用setClientId/setClientSecret和setAuthConfig,两种方式重复会导致凭证加载异常。解决:只保留setAuthConfig(public_path("client_secret_latest.json")),因为JSON文件已包含client_id、client_secret和redirect_uri信息,删掉单独设置这三个参数的代码。

  • 重定向URI不匹配
    Google Cloud控制台中OAuth客户端ID配置的重定向URI,必须和代码里的redirect_uri完全一致(含http/https、端口、路径)。解决:登录Google Cloud→API和服务→凭据→对应客户端ID,检查重定向URI列表,确保和代码中的http://localhost/redirect_url完全一致。

  • 令牌文件损坏
    本地token文件可能因写入错误或内容篡改,导致解析后的令牌无效。解决:删除现有token文件,重新授权生成新文件。

  • 账号权限变更
    授权的Google账号可能被移除了目标网站的Search Console权限。解决:登录Google Search Console,确认目标网站权限列表包含该账号,且至少拥有"查看者"权限。

代码优化点

针对你的现有代码,调整以下几点:

  1. 移除重复凭证配置:
// 删除这三行,依赖client_secret_latest.json即可
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);

// 保留这一行
$client->setAuthConfig(public_path("client_secret_latest.json"));
  1. 刷新令牌后更新本地文件:
    当前代码刷新令牌后未写入文件,下次运行仍用旧令牌,这是常见问题。修改刷新逻辑:
// 刷新过期令牌
if ($client->isAccessTokenExpired()) {
    $refreshTokenSaved = $client->getRefreshToken();
    $newAccessToken = $client->fetchAccessTokenWithRefreshToken($refreshTokenSaved);
    // 合并新令牌,保留refresh_token
    $accessToken = array_merge($accessToken, $newAccessToken);
    // 更新本地token文件
    file_put_contents($this->tokenFile, json_encode($accessToken));
    $client->setAccessToken($accessToken);
}
  1. 修复异常判断语法错误:
    catch块里用了赋值操作=,改成相等判断===:
if ($error->error === "invalid_grant") {
    echo "权限不足或令牌失效,请重新授权。";
}
  1. 统一站点变量:
    代码里定义了$siteToFetch,但调用query时用了$sitesFetched[0]["site"],变量名不一致可能导致站点URL错误,需确认变量对应关系。

验证流程

  1. 删除本地token文件,重新访问授权页面完成授权。
  2. 检查Google Cloud控制台的OAuth客户端配置,确保重定向URI、凭证文件正确。
  3. 运行修改后的代码,测试能否正常获取数据。

内容的提问来源于stack exchange,提问作者Liaqat A.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 14:06:24