Dej*_*ima 3 php google-api google-analytics-api google-api-php-client
我正在关注下面的文章, https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/web-php
但是最后,当我尝试使用示例代码(HelloAnalytics.php)时,它会在命令行中显示如下错误并且无法获取数据;
PHP 警告:count(): Parameter must be an array or an object that implementation Countable in C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php on line 67
警告:count(): Parameter must be an array or an object that implementation Countable in C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php on line 67 PHP Warning: count(): Parameter must是第 67 行 C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php 中实现 Countable 的数组或对象
警告:count():参数必须是在 C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php 中实现 Countable 的数组或对象,第 67 行 PHP 致命错误:未捕获的 Google_Service_Exception:{" error":{"errors":[{"domain":"usageLimits","reason":"accessNotConfigured","message":"Project 687417168367 未找到且不能用于 API 调用。如果它是最近创建的,通过访问https://console.developers.google.com/apis/api/analytics.googleapis.com/overview?project=687417168367启用 Google Analytics API,然后重试。如果您最近启用了此 API,请等待几分钟以进行操作传播到我们的系统并重试。","extendedHelp":" https://console.developers.google。com/apis/api/analytics.googleapis.com/overview?project=687417168367"}],"code":403,"message":"项目 687417168367 未找到,无法用于 API 调用。如果它是最近创建的,请访问https://console.developers.google.com/apis/api/analytics.googleapis.com/overview?project=687417168367启用 Google Analytics API,然后重试。如果您最近启用了此 API,请等待几分钟,让操作传播到我们的系统并重试。"}} 位于 C:\xampp\htdocs\vendor\google\apiclient\s 位于 C:\xampp\htdocs\vendor\ google\apiclient\src\Google\Http\REST.php 第 118 行
项目 687417168367 未找到,不能用于 API 调用。如果它是最近创建的,请通过访问启用 Google Analytics APIhttps://console.developers.google.com/apis/api/analytics.googleapis.com/overview?project=687417168367然后重试。如果您最近启用了此 API,请等待几分钟,让操作传播到我们的系统并重试。"}} 位于 C:\xampp\htdocs\vendor\google\apiclient\s 位于 C:\xampp\htdocs\vendor\ google\apiclient\src\Google\Http\REST.php 第 118 行
有人可以帮助我吗?谢谢
如这里所述 count():参数必须是数组或对象
请尝试升级您的 Guzzle 版本。
问题在于 PHP 7.2 中 count() 的参数不能为 NULL。当 $this->handles 等于 NULL 时,会显示第一篇文章中的警告。只需将 CurlFactory.php 中的第 67 行替换为以下内容:
if (($this->handles ? count($this->handles) : 0) >= $this->maxHandles) {
有些人在升级到 Mac OS Catalina 时可能会遇到这个问题(在本地环境中)。这将我的 php 版本从 7.1 升级到 7.3,所以我在 CurlFactory 上遇到了同样的问题(使用了 Guzzle 的 6.2.1 版本)。
这可以通过将您的 Guzzle 版本更新到 6.3.0(最低)来解决。 如何做到这一点:
"require": {
"guzzlehttp/guzzle": "^6.3.0"
}
Run Code Online (Sandbox Code Playgroud)
然后在终端中(在项目的根目录中):
composer update
Run Code Online (Sandbox Code Playgroud)
或者,如果您无法更改 Guzzle 版本(出于某种原因……这是我的情况)
然后在终端类型中:
brew update
brew install php@7.1
Run Code Online (Sandbox Code Playgroud)
在某些情况下,您必须使用以下命令链接到 php 7.1:
brew link php@7.1
Run Code Online (Sandbox Code Playgroud)
最后,重新启动您的终端。