Google Analytics API - 不一致的错误"权限不足"(403)



Backgroud:

我有一个PHP代码,可以代表我的用户运行对Google Analytics API的查询。我正在使用 OAuth2 进行身份验证并将用户的访问令牌存储在我的数据库中。

我的代码确保不超过每个用户的配额(10 QPS),并且我在查询中使用了"quotaUser"参数。

问题:

我对 GA 的大约 50% 的查询都回复了错误 403("权限不足"、"用户对此配置文件没有足够的权限"。奇怪的是,其他 ~50% 的人成功地从 GA 中获得了结果。

一些要点:

    所有成功查询
  • 和不成功查询的唯一共同点是它们所在的批处理:我的代码正在向 GA 的 API 发送"一批"查询(一个接一个,它们之间的延迟很短),每批都是以太通过或失败 403。

  • 将 \ 删除权限添加到范围未解决问题。

  • 值得一提的是,这不是视图 ID \ 帐户 ID 问题等,因为同一用户和视图的同一查询可以通过或失败。

  • 我在这里看到了一个相关的未解决的问题,找不到任何其他真正相关的问题。

我的代码片段:

//Create a Google Client
$client = new Google_Client();
$client->setAuthConfigFile($this->secretJson);
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY, Google_Service_Oauth2::PLUS_LOGIN, Google_Service_Analytics::ANALYTICS);
// Set the access token on the client.
$client->setAccessToken($accessToken);
// Create an authorized analytics service object.
$this->analytics = new Google_Service_Analytics($client);
...
//Run the query
$results = $this->analytics->data_ga->get($id, $startDate, $endDate, $metrics, $opts);

Ido,你还能重现这个问题吗?听起来很像您的访问令牌存在问题。我将通过确保您为所有批处理运行设置相同的访问令牌并验证令牌未过期(isAccessTokenExpired())来开始故障排除。

最新更新