我创建了一个组件:
<?php
namespace common\components;
use Google_Client;
use Google_Service_Gmail;
use Yii;
use yii\base\ErrorException;
use yii\helpers\ArrayHelper;
use yii\base\Component;
use yii\rest\ActiveController;
use linslin\yii2\curl;
class SocialLogin extends Component {
public $GOOGLE_CLIENT_ID;
public $FACEBOOK_CLIENT_ID;
public $GOOGLE_CLIENT_ID_IOS;
public function getGoogleUser($id_token,$device)
{
$clientID=$this->GOOGLE_CLIENT_ID;
if($device=="ios")
$clientID=$this->GOOGLE_CLIENT_ID_IOS;
$client = new Google_Client(['client_id' => $clientID]);
$payload = $client->verifyIdToken($id_token);
if ($payload) {
// my code
}
}
}
它在本地工作正常但在实时服务器上我得到以下错误:
消息“:”未找到“Google_Client”类“,
问题是什么?
如果你已经需要作曲家autoload.php并需要google/apiclient
作曲家包,你可以搜索vendor/composer/autoload_static.php
:
'Google_' =>
array (
0 => __DIR__ . '/..' . '/google/apiclient/src',
),
这是google/apiclient
PSR-0地图,如果你没找到它或路径错误,就意味着google/apiclient
包没有正确安装。
希望这可以帮到你。
我已经解决了这个问题。 The issue was PHP version
,在我的本地机器上是PHP 7,在服务器上它是5.6然后我更新了PHP版本,所有问题都消失了。
在根目录下的composer.json文件中包含以下代码。
{
"require": {
"google/apiclient": "^2.0"
}
}
然后运行命令:composer update
这将在根级别的供应商目录中创建一个文件夹谷歌。在这个谷歌文件夹里面有apiclient,apiclient-services和auth的子文件夹。
检查文件composer.json
并在classmap数组中添加“vendor / google / apiclient / src / Google”(如果不存在)。
并运行composer dump-autoload
"autoload": {
"classmap": [
"vendor/google/apiclient/src/Google"
]
}