2010-12-18 14 views

答えて

1

でいくつかの問題を抱えているように、それはだからここに私はFacebookのPHP SDKを使用するために使用されるトリックだそうですhttps://github.com/facebook/php-sdk/

: 私はこの1つのために何かをしたかったです私のCodeIgniterアプリで。 SDKコードから、Facebook.phpを取り出し、FacebookApiExceptionクラスを取り出して、FacebookApiException.phpという新しいファイルに入れます。今、facebook.phpとFacebookApiException.phpをmodelsフォルダに入れて、それらを通常のモデルとして使用しました。

ここでは、ユーザーの認証とFacebook経由のアプリケーションへのアクセスに使用したコードを示します。

function facebook_login(){ 
     # Creating the facebook object 
     $facebook = new Facebook(array(
      'appId' => 'XXXXXXXXXXXXXXXXX', 
      'secret' => 'XXXXXXXXXXXXXXXXX', 
      'cookie' => true 
     )); 

     # Let's see if we have an active session 
     $session = $facebook->getSession(); 

     if(!empty($session)) { 
      # Active session, let's try getting the user info 
      try{ 
       $uid = $facebook->getUser(); 
       $param = array(
        'method' => 'users.getinfo', 
        'uids'  => $uid, 
        'fields'  => 'uid, username, name, profile_url, pic_big', 
        'callback' => '' 
       ); 
       $user = $facebook->api($param); 
      } catch (Exception $e){ 
       $url = $facebook->getLoginUrl(array( 
         'req_perms' => 'user_about_me, email, status_update, publish_stream, user_photos', 
         'next' => site_url() . 'user/facebook_login', 
         'cancel' => site_url() 
        )); 
       redirect($url); 
      } 

      if(!empty($user)){ 
       # User info ok? 
       print_r($user); 

        // Add user oauth token and info to DB, and then redirect to some controller in your application. 
        redirect('/'); // redirect to homepage 

      } else { 
       # For testing purposes, if there was an error, let's kill the script 
       die("There was an error."); 
      } 
     } else { 
      # There's no active session, let's generate one 
      $url = $facebook->getLoginUrl(array( 
         'req_perms' => 'user_about_me,email,status_update,publish_stream,user_photos', 
         'next' => site_url() . 'user/facebook_login', 
         'cancel' => site_url() 
        )); 
      redirect($url); 
     } 
    } 

希望します。

+0

私はすでにこの正確なことをしています(「自分のラッパー」のように)。 CodeIgniter-ishがあれば、私は迷ってしまった。しかし、 '$ _REQUEST ['...']' Code_gniterで、特にmod_rewriteのすべての魔法でうまく動作しますか? – David

+0

多分あなたが$ _REQUEST [...]で持っている問題にもっと具体的であれば、私は何か具体的に答えるのを助けることができました。 CodeIgniterを使用してPHP SDKに問題はありませんでした。 – Shivaas

2

公式のPHP Facebook SDKをCodeigniterで簡単に使用できます。唯一の問題はFacebookのSDKである$ _REGISTERを必要とCodeIgniterの中で、あなたはそれを持っていない(そのためのmod_rewriteの)

はここで少しソリューションです:。

1 - これは、$ _REGISTERの問題のためです。この前にロードFacebookのクラスを使用します。

parse_str($_SERVER['QUERY_STRING'], $_REQUEST); 

2 - FacebookのSDKには、2つのファイルがあります。それらを1つのファイルに入れて、アプリケーション/ヘルパーフォルダにfacebook_helper.phpという名前で保存します。このように読み込みと使用はとても簡単です。

$this->load->helper('facebook'); 
$facebook = new Facebook(array('appId' => 'XXX', 'secret' => 'xxx')); 
// ... The rest is not different. You can read Facebook SDK examples 
関連する問題