0

私はFacebook接続を実装しており、部分的にうまく機能しています。Facebookでログインすると、ユーザーのログインに成功します。これはログインhttp://beta-demo.info/party/users/loginByFacebookのリンクですが、ログイン後、Facebook からユーザーの詳細を取得しようとすると、何も表示されなくなります。

これが Fb_Connect.php のコードです このファイルは Libraries フォルダにあります

<?php
include(APPPATH.'libraries/facebook/facebook.php');
class Fb_connect extends Facebook{

    //declare public variables
    public  $user           = NULL;
    public  $user_id        = FALSE;

    public $fb          = FALSE;
    public $fbSession   = FALSE;
    public $appkey      = 0;

    //constructor method.
    public function __construct()
    {
                $CI = & get_instance();
                $CI->config->load("facebook",TRUE);
                $config = $CI->config->item('facebook');
                parent::__construct($config);
                $this->user_id = $this->getUser(); // New code

                $me = null;
                if ($this->user_id) {
                    try {
                        $me = $this->api('/me');
                        $this->user = $me;
                        } catch (FacebookApiException $e) {
                            error_log($e);
                        }
        }
    } 

} // end class

これはロギング機能です

function loginByFacebook(){
            $this->load->library('fb_connect');
            $param['redirect_uri']=base_url();
            redirect($this->fb_connect->getLoginUrl($param));
    }

これは、値をフェッチしようとしている情報関数です。

function facebook() {   
print('<pre>');
print_r($this->fb_connect);
        if (!$this->fb_connect->user_id) {
        echo 'No working ';
            //Handle not logged in,
        } else {
        echo   $fb_uid = $this->fb_connect->user_id;
         echo  $fb_usr = $this->fb_connect->user;
           //Hanlde user logged in, you can update your session with the available data
           //print_r($fb_usr) will help to see what is returned
        }
}

情報ページの URL http://beta-demo.info/party/users/facebook

Facebook接続APIについてはよくわかりません。助けてください

4

2 に答える 2

1

あなたが見落としているのは、「/me」を呼び出すときのフィールドだけです。これは、facebook connect から情報を取得するために使用した関数です。作業例: http://www.paravegetarianos.com

function facebookConnect()
{
    $this->config->load('facebook', TRUE);
    $config = array(
        'appId'  => $this->config->item('facebook_api_id', 'facebook'),
        'secret' => $this->config->item('facebook_secret_key', 'facebook'),
        'fileUpload' => true,
    );
    $this->load->library('Facebook', $config);

    $user = $this->facebook->getUser();

    $profile = null;
    if($user):
        try {
            $profile = $this->facebook->api('/me?fields=id,username,email'); //<--- you are missing the fields
        } catch (FacebookApiException $e) {
            error_log($e);
            $user = null;
        }
    endif;

    if($profile != null):
        $profile['uid'] = $user;
        $data = $profile;
        var_dump($data); //<--------- Information
                    die();
    endif;  

}
于 2012-06-29T07:15:43.290 に答える
0

これは私にとって有効なコードです

<?php
   function loginByFacebook()
   {
        $this->load->library('fb_connect');      
        $param = array( 
                        'scope' =>'email,user_location,user_birthday,offline_access',                                                   'redirect_uri' => base_url()
                       );
        redirect($this->fb_connect->getLoginUrl($param));                   

   }

   function facebook()
   {    

        if (!$this->fb_connect->user_id) {      

        } else {        
            $fb_uid = $this->fb_connect->user_id;
            $fb_usr = $this->fb_connect->user;  
            $firstname = $fb_usr['first_name'];
   }
?>
于 2012-07-04T09:29:54.137 に答える