Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Yii2 Facebook登录问题_Php_Facebook_Yii2 - Fatal编程技术网

Php Yii2 Facebook登录问题

Php Yii2 Facebook登录问题,php,facebook,yii2,Php,Facebook,Yii2,我尝试在我的网站上实现facebook登录。我遵循了这个方法。一切都很好…但当我运行网站时,出现了一个错误,未找到类'yiisoft\authclient\widgets\AuthChoice'。 我随此附上我的composer.json和view.php composer.json "require": { "php": ">=5.4.0", "yiisoft/yii2": ">=2.0.5", "yiisoft/yii2-bootstrap": "*",

我尝试在我的网站上实现facebook登录。我遵循了这个方法。一切都很好…但当我运行网站时,出现了一个错误,未找到类'yiisoft\authclient\widgets\AuthChoice'。
我随此附上我的composer.json和view.php
composer.json

"require": {
    "php": ">=5.4.0",
    "yiisoft/yii2": ">=2.0.5",
    "yiisoft/yii2-bootstrap": "*",
    "yiisoft/authclient": "*",
    "yiisoft/yii2-swiftmailer": "*"
},  
我的观点

use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
use app\models\User;
use vendor\yiisoft\authclient\widgets\AuthChoice;
     <?= yiisoft\authclient\widgets\AuthChoice::widget([
     'baseAuthUrl' => ['site/auth']
]) ?>
'authClientCollection' => [
      'class' => 'yiisoft\authclient\Collection',
      'clients' => [
        'facebook' => [
          'class' => 'yiisoft\authclient\clients\Facebook',
          'authUrl' => 'https://www.facebook.com/dialog/oauth?display=popup',
          'clientId' => '************',
          'clientSecret' => '*********',
        ],
      ],
    ],  
添加了这些代码。
谁能告诉我为什么会发生这种情况……

试试:

yii\authclient\widgets\AuthChoice::widget
信息:

composer.json 在“需要”部分中添加此扩展名

 "yiisoft/yii2-authclient": "*"
第一个:frontend/config/main.php 需要粘贴吗

'authClientCollection' => [
    'class' => 'yii\authclient\Collection',
    'clients' => [
    'facebook' => [
    'class' => 'yii\authclient\clients\Facebook',
    'authUrl' => 'https://www.facebook.com/dialog/oauth?display=popup',
    'clientId' => '13232324242322424',
    'clientSecret' => '32jjkschsuc6dsgdjhsd7dtusdjsds7',
    'attributeNames' => ['name', 'email', 'first_name', 'last_name'],
         ],
    ],

    ],
第二:前端/控制器/站点控制器 需要粘贴=====>>>

public function actions()
{
    return [
    'auth' => [
    'class' => 'yii\authclient\AuthAction',
    'successCallback' => [$this, 'oAuthSuccess'],
         ],
    ];

}

public function oAuthSuccess($client) 
{
    $userAttributes = $client->getUserAttributes();
    $user_email= $userAttributes['email'];
    $user_first_name = $userAttributes['first_name'];
    $user_last_name  = $userAttributes['last_name'];
    $model = new SignupForm();
    $user = $model->facebook_data($user_email,$user_last_name,$user_first_name);
    return $this->render('signup', [
        'model' => $model,
    ]);

    exit;
    // do some thing with user data. for example with $userAttributes['email']
}
第三步: 在用户表中保存first\u name和last\u name需要创建其他属性

public function facebook_data($user_email,$user_last_name,$user_first_name)
{
    $user = new User();
    $user->email= $user_email;
    $user->first_name =  $user_first_name;
    $user->last_name = $user_last_name;
    return $user->save() ? $user : null;
}    
第四步: 从facebook开发者网站需要获得应用程序id和密钥,并在第一步中粘贴,其中提到'clientId'=>'XXXXXXXXXXXXXX', 'clientSecret'=>'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX', 对于localhost,需要提供url。 我的网址是 我只是简单地粘贴在facebook网站的url,同时添加网站,以获得2个键

第五步: 在视图文件中,需要将此粘贴到facebook图标,然后单击此处

 <?= yii\authclient\widgets\AuthChoice::widget([
                   'baseAuthUrl' => ['site/auth']
                  ]) ?>


它在视图文件中的自动查看facebook图标

使用composer或直接安装的扩展名?Yii类的名称空间来自Yii \\