2015-10-04 3 views
1

Я создал приложение, использующее компонент cakephp auth в версии cakephp 2.6.2, теперь я также реализую логин с facebook с помощью facebook sdk, я стараюсь следовать этому сообщению How do I integrate Facebook SDK login with cakephp 2.x?, и для этого я скачал facebook-php-sdk-v4, однако, когда я использую предложениеПроблемы с внедрением cakephp auth с login facebook

App::import('Vendor', 'facebook-php-sdk-v4-5.0-dev/src/Facebook'); 

, а затем вызвать класс Facebook, я имею ошибку

Fatal error: Class 'Facebook' not found in C:\xampp\htdocs\exampleApp\app\Controller\AppController.php on line 34 

Я скопировал facebook SDK в ExampleApp \ App \ Vendor и папка называется facebook-PHP-СДК-v4-5.0-DEV

мой appControll здесь

<?php 

App::uses('Controller', 'Controller'); 
App::import('Vendor', 'facebook-php-sdk-v4-5.0-dev/src/Facebook'); 

class AppController extends Controller { 



    public $components = array(
     'Session', 
     'Auth' => array(
      'loginRedirect' => array(
       'controller' => 'home', 
       'action' => 'Page' 
      ), 
      'logoutRedirect' => array(
       'controller' => 'users', 
       'action' => 'login' 
      ), 
      'authenticate' => array(
       'Form' => array(
        'passwordHasher' => 'Blowfish' 
       ) 
      ), 
      'authorize' => array('Controller'), 
      'authError' => false 
     ) 
    ); 


    public function beforeFilter(){ 

     $this->Facebook = new Facebook(array(
      'appId'  => 'App_ID_of_facebook', 
      'secret' => 'App_Secret' 

     )); 

     $this->layout = 'bootstrap'; 
     $this->Auth->allow(
          'login', 
          'logout' 
        ); 

     $this->set('current_user', $this->Auth->user()); 
    } 

    public function isAuthorized($user) 
    { 
     if(isset($user['role_id']) && $user['role_id'] === '1') 
     { 
      return true; 
     } 

     return false; 

    } 

} 
?> 

Проблема особенно в

$this->Facebook = new Facebook(array(
      'appId'  => 'App_ID_of_facebook', 
      'secret' => 'App_Secret' 

     )); 

здесь, где возвращается Фатальная ошибка : Class 'Facebook' не найдено

большое спасибо заранее всем, кто может мне помочь

+0

http://stackoverflow.com/a/24746915/1392379 – ndm

+0

Извините, но я не понимаю, что именно я делаю неправильно, вы можете быть более конкретным? – Juliancho9191

+0

Попробуйте использовать метод «HybridAuth» http://hayageek.com/login-with-facebook-twitter-google-php/ –

ответ

0

проблема заключалась в том, что класс «Vendor/facebook-php-sdk-v4-5.0-dev/src/Facebook/Facebok.php» имел «namespace Facebook», поэтому был в другом объеме моего проекта, поэтому решение было удалить «namespace Facebook»

Смежные вопросы