2

Composer를 사용하여 CodeIgniter에 Facebook SDK를 설치하고 실행하려고합니다.CodeIgniter 페이스 북 SDK 4 with Composer

CodeIgniter가 설치되어 있고 올바르게 작동합니다.

작곡가 지원을 수행하여 추가 된 다음

  • curl -s http://getcomposer.org/installer | php
  • touch composer.json
  • 올린하여 composer.json 파일 라인을 필요로 ("facebook/php-sdk-v4" : "4.0.*")
  • composer update

모두를 실행 계획대로 갔다. 작곡가가 /vendor 폴더를 만들고 Facebook SDK가 있습니다.

그런 다음 include_once './vendor/autoload.php'; 줄을 index.php 맨 위에 추가하여 작성자 지원을 CodeIgniter에 추가했습니다.

이 시점에서 오류가 없습니다.

이제 SDK를 호출하려고합니다. Facebook 클래스를 사용할 수있는 것 같지 않습니다.

Fatal error: Class 'FacebookSession' not found in /var/sites/***/public_html/application/controllers/welcome.php on line 13


: bool(false)


FacebookSession::setDefaultApplication('app id removed', 'app secret removed');

밖으로 뱉어


var_dump(class_exists('Facebook')); 보여줍니다 ... 시도하고 실패한 것을 내용은 아래를 참조하십시오

그리고 더 완전 예 :

<?php 
class Welcome extends CI_Controller { 

    use Facebook\FacebookSession; 
    use Facebook\FacebookRequest; 
    use Facebook\GraphUser; 
    use Facebook\FacebookRequestException; 

    public function index() 
    {   
     FacebookSession::setDefaultApplication('app id removed', 'app secret removed'); 

    } 
} 

밖으로 뱉어 : Fatal error: Welcome cannot use Facebook\FacebookSession - it is not a trait in /var/sites/***/public_html/application/controllers/welcome.php on line 5

답변

2

당신은 USE 문의 위치를 ​​혼합했습니다. 당신이 할 수있는 일은 FB SDK의 클래스들을 클래스가 아닌 클래스 밖에서 선언하는 것입니다. 클래스 내에서 사용을 사용하면 특성에 대한 지시가 이루어지며,이 특성은 클래스에 포함되어야합니다.

<?php 
class MyClass extends MyBaseClass { 
    // this is a namespaced trait inside the class 
    // = extend class with trait 
    use SomeWhere\Trait; 
} 
?> 

-

<?php 
// this is the declaration of a namespaced class outside of the class  
use SomeWhere\Class; 

class MyClass extends MyBaseClass 
{ 
    public function helloWorld() 
    { 
     $c = new Class; 
     // ... 
    } 
} 
?> 

-

귀하의 코드가됩니다 :

<?php 
use Facebook\FacebookSession; 
use Facebook\FacebookRequest; 
use Facebook\GraphUser; 
use Facebook\FacebookRequestException; 

class Welcome extends CI_Controller { 

    public function index() 
    {   
     FacebookSession::setDefaultApplication('app id removed', 'app secret removed'); 

    } 
} 
+0

이 내가 너무 오래 사물을 응시 때 발생합니다. 간단한 실수, 시간 낭비. 조만간 테스트하고 표시 할 것입니다. 고맙습니다 – Mike