【问题标题】:Guzzle Error count(): Parameter must be an array or an object that implements Countable inGuzzle Error count():参数必须是数组或者实现了Countable的对象
【发布时间】:2018-11-26 15:24:51
【问题描述】:

我正在关注下面的文章, https://developers.google.com/analytics/devguides/reporting/core/v3/quickstart/web-php

但最后,当我尝试使用示例代码(HelloAnalytics.php)时,它会在命令行中显示如下错误并且无法获取数据;

PHP 警告:count():参数必须是数组或对象,在 C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php 第 67 行中实现 Countable

警告:count():参数必须是数组或对象,在 C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php 第 67 行实现 Countable PHP 警告:count(): 参数必须是在 C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php 第 67 行中实现 Countable 的数组或对象

警告:count():参数必须是数组或对象,在 C:\xampp\htdocs\vendor\guzzlehttp\guzzle\src\Handler\CurlFactory.php 第 67 行实现 Countable PHP致命错误:未捕获的Google_Service_Exception:{“error”:{“errors”:[{“domain”:“usageLimits”,“reason”:“accessNotConfigured”,“message”:“找不到项目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 行

致命错误:未捕获的 Google_Service_Exception: {"error":{"errors":[{"domain":"usageLimits","re​​ason":"accessNotConfigured","message":"项目 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 行

有人可以帮助我吗? 谢谢

【问题讨论】:

    标签: php google-api google-analytics-api google-api-php-client


    【解决方案1】:

    如此处所述count(): Parameter must be an array or an object

    请尝试升级您的 Guzzle 版本。

    问题是在 PHP 7.2 中 count() 的参数不能为 NULL。当 $this->handles 等于 NULL 时,将显示第一篇文章中的警告。只需将 CurlFactory.php 中的第 67 行替换为以下内容:

    if (($this->handles ? count($this->handles) : 0) >= $this->maxHandles) {

    【讨论】:

      【解决方案2】:

      我知道这是一篇旧帖子,但我已通过 composer 更新 Guzzle 来修复它。
      首先在你的作曲家中添加这个

       "require": {
          "guzzlehttp/guzzle": "~5.3.1"
      }
      

      然后写

      composer update
      

      在您的命令提示符中

      【讨论】:

        【解决方案3】:

        升级到 Mac OS Catalina 时,某些人可能会遇到此问题(在本地环境中)。这将我的 php 版本从 7.1 升级到 7.3,所以我在使用 CurlFactory 时遇到了同样的问题(使用了 Guzzle 的 6.2.1 版)。

        这可以通过将您的 Guzzle 版本更新到 6.3.0(最低)来解决。 如何做到这一点

        "require": {
            "guzzlehttp/guzzle": "^6.3.0"
        }
        

        然后在终端中(在项目的根目录中):

        composer update
        

        或者,如果您无法更改 Guzzle 版本(出于某种原因……这是我的情况)

        • 您可以改为通过安装 7.1 更改您的 php 版本(在我的示例中使用自制软件。如果您没有,可以在此处找到/安装:https://brew.sh/index

        然后在终端类型中:

        brew update
        brew install php@7.1
        

        在某些情况下,您必须使用以下命令链接到 php 7.1:

        brew link php@7.1
        

        最后,重新启动您的终端。

        【讨论】:

          【解决方案4】:

          在我的情况下,问题并不严重,在尝试了上述解决方案后,我得出的结论是,我只需要删除错误并且一切正常。

          if(version_compare(PHP_VERSION, '7.2.0', '>=')) {
          error_reporting(E_ALL ^ E_NOTICE ^ E_WARNING);
          }
          

          此代码仅在本地主机上需要,生产服务器无论如何都不会输出警告。

          【讨论】:

            猜你喜欢
            • 2018-06-28
            • 2019-08-03
            • 2018-06-08
            • 2018-09-22
            • 1970-01-01
            • 1970-01-01
            • 2019-04-02
            • 2020-04-27
            • 2021-11-05
            相关资源
            最近更新 更多