Google_Service_OAuth2 是 'Undefined type' 在 PHP
Google_Service_OAuth2 is 'Undefined type' in PHP
我正在尝试使用 Google 登录,但它显示 'Google_Service_OAuth2' 为未定义类型。
我找到了这个堆栈 post:Google_Service_Oauth2 is undefined 但上面没有回复。
我用 composer 安装了 apiclient,经过研究我发现每个文件都位于正确的位置(例如 src 文件夹)。此外,我使用 composer 安装的其他库工作正常。
使用命令 composer require google/apiclient
composer 安装了 2.12 版。我已经尝试安装 v2.0,这是我发现的大多数指南和 posts 使用的版本。
我已经 运行 composer dump-autoload
并重新启动了我的机器以防万一。
这是我的代码:
use Google\Client;
$client = new Google_Client();
$clientID = 'MY CLIENT ID';
$clientSecret = 'MY CLIENT SECRET';
$redirectUri = 'http://localhost/dhi-portal/users/login';
$client->addScope('email');
$client->addScope('profile');
session_start();
if (isset($_GET['code'])) {
$token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
if (!isset($token['error'])) {
$client->setAccessToken($token['accessToken']);
$_SESSION['accessToken'] = $token['accessToken'];
$googleService = new Google_Service_OAuth2($client);
}
}
我没有从这里继续下去,因为它显示了未定义的类型。
任何指导将不胜感激。
我从 google/apiclient 版本 2.9.x => 2.12.x 更新时遇到了同样的问题。问题是他们将 类 改为使用命名空间。
**Before**
$client = new Google_Client();
$service = new Google_Service_Books($client);
**After**
$client = new Google\Client();
$service = new Google\Service\Books($client);
来源:https://github.com/googleapis/google-api-php-client/blob/main/UPGRADING.md
所以在你的情况下,如果你想使用 2,你需要像这样重写你的代码。12.x:
$client = new Google\Client();
...
$googleService = new Google\Service\Oauth2($client);
我正在尝试使用 Google 登录,但它显示 'Google_Service_OAuth2' 为未定义类型。
我找到了这个堆栈 post:Google_Service_Oauth2 is undefined 但上面没有回复。
我用 composer 安装了 apiclient,经过研究我发现每个文件都位于正确的位置(例如 src 文件夹)。此外,我使用 composer 安装的其他库工作正常。
使用命令 composer require google/apiclient
composer 安装了 2.12 版。我已经尝试安装 v2.0,这是我发现的大多数指南和 posts 使用的版本。
我已经 运行 composer dump-autoload
并重新启动了我的机器以防万一。
这是我的代码:
use Google\Client;
$client = new Google_Client();
$clientID = 'MY CLIENT ID';
$clientSecret = 'MY CLIENT SECRET';
$redirectUri = 'http://localhost/dhi-portal/users/login';
$client->addScope('email');
$client->addScope('profile');
session_start();
if (isset($_GET['code'])) {
$token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
if (!isset($token['error'])) {
$client->setAccessToken($token['accessToken']);
$_SESSION['accessToken'] = $token['accessToken'];
$googleService = new Google_Service_OAuth2($client);
}
}
我没有从这里继续下去,因为它显示了未定义的类型。
任何指导将不胜感激。
我从 google/apiclient 版本 2.9.x => 2.12.x 更新时遇到了同样的问题。问题是他们将 类 改为使用命名空间。
**Before**
$client = new Google_Client();
$service = new Google_Service_Books($client);
**After**
$client = new Google\Client();
$service = new Google\Service\Books($client);
来源:https://github.com/googleapis/google-api-php-client/blob/main/UPGRADING.md
所以在你的情况下,如果你想使用 2,你需要像这样重写你的代码。12.x:
$client = new Google\Client();
...
$googleService = new Google\Service\Oauth2($client);