【问题标题】:Problems with Google API Client Library for PHP用于 PHP 的 Google API 客户端库的问题
【发布时间】:2017-07-29 12:52:40
【问题描述】:

我正在尝试将 Google 的 PHP API 客户端库与我的应用程序集成,以验证某些令牌是否真实。

根据他们的说明,有两种方法可以做到这一点。 首先是使用我没有经过的composer,其次是从https://github.com/google/google-api-php-client/下载zip文件并将其移动到服务器中的某个位置;我做了。到目前为止,一切顺利。

然后,根据谷歌,

解压缩您下载的 zip 文件,并将自动加载器包含在您的项目中: require_once '/path/to/google-api-php-client/vendor/autoload.php';

这样做的主要原因是运行以下代码进行检查。

// Get $id_token via HTTPS POST.
$client = new Google_Client(['client_id' => $CLIENT_ID]);
$payload = $client->verifyIdToken($id_token);
if ($payload) {
  $userid = $payload['sub'];
  // If request specified a G Suite domain:
  //$domain = $payload['hd'];
} else {
  // Invalid ID token
}

但是,我从以下行中得到一个致命错误:

require_once 'require_once '/var/www/html/various/google-api-php-client-2.1.1/vendor/autoload.php';

使用error_reporting(E_ALL);ini_set('display_errors', 1); 的错误是:

    <br />
    <b>Warning</b>:  require_once(/var/www/html/various/google-api-php-client-2.1.1/vendor/autoload.php): failed to open stream: No such file or directory in <b>/var/www/html/php/insert.php</b> on line <b>7</b><br />
    <br />
<pre>
    &lt;b&gt;Fatal error&lt;/b&gt;:  require_once(): Failed opening required '/var/www/html/various/google-api-php-client-2.1.1/vendor/autoload.php' (include_path='.:/usr/share/php') in &lt;b&gt;/var/www/html/php/insert.php&lt;/b&gt; on line &lt;b&gt;6&lt;/b&gt;&lt;br /&gt;
</pre>

目前,我的 insert.php 代码是:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
include_once ('/var/www/db/connection.php');
require_once '/var/www/html/various/google-api-php-client-2.1.1/vendor/autoload.php';

$value = json_decode(file_get_contents('php://input')); 
?>

我做错了什么?

【问题讨论】:

  • 在致命错误之前应该有其他错误可以解释为什么,特别是 PHP 无法打开该文件。例如,如果文件不存在,您还会看到如下 E_WARNING 级别错误:PHP Warning: require(/var/www/html/various/google-api-php-client-2.1.1/vendor/autoload.php): failed to open stream: No such file or directory in /var/www/html/php/insert.php on line 6。如果存在权限问题,它也会说明这一点。请务必将error_reporting 设置为E_ALL 以获取所有错误级别。
  • 好主意@Sherif,检查我更新的问题
  • 我想我最终让它工作了。我使用作曲家而不是存档,但我犯的错误是我在根文件夹中创建它,而不是在我的项目文件夹中创建它。

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


【解决方案1】:

在继续之前,请检查文件autoload.php是否存在于指定路径中。

然后,您可以下载并使用发布包,因为您链接的 GitHub 存储库是用于与 composer 一起使用的。发布包可以在Google Releases找到。

【讨论】:

  • 它说它不存在,但实际上它存在。我不知道为什么会出现这个错误。此外,我下载的 zip 文件来自您提供的链接,而不是 composer。
  • 我下载并尝试了相同的存档,使用您的 insert.php 代码(注释一些行),它适用于我。您可以在包含 echo "someting" 的 google api 文件夹中创建一个简单的 php 文件,然后对该文件调用 require 以了解发生了什么。
  • 我想我最终让它工作了。我使用作曲家而不是存档,但我犯的错误是我在根文件夹中创建它,而不是在我的项目文件夹中创建它。
猜你喜欢
  • 1970-01-01
  • 2014-08-09
  • 2016-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多