【发布时间】: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>
<b>Fatal error</b>: 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 <b>/var/www/html/php/insert.php</b> on line <b>6</b><br />
</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