使用sdk4登录Facebook

使用sdk4登录Facebook,facebook,login,kohana,Facebook,Login,Kohana,我正在尝试在Facebook上登录我的网站。 我有Facebook应用程序,我制作了AppId,Secred,它显示Facebook登录,但我无法设置会话。我正在使用facebook-php-sdk-v4-4.0-dev和Kohana框架。 它不向我显示会话数据。 ErrorException[注意]:未定义变量:user\u profile 请问怎么做 这是我的控制器: <?php defined('SYSPATH') or die('No direct script access.')

我正在尝试在Facebook上登录我的网站。 我有Facebook应用程序,我制作了AppId,Secred,它显示Facebook登录,但我无法设置会话。我正在使用facebook-php-sdk-v4-4.0-dev和Kohana框架。 它不向我显示会话数据。 ErrorException[注意]:未定义变量:user\u profile 请问怎么做

这是我的控制器:

<?php defined('SYSPATH') or die('No direct script access.');
require_once( 'Facebook/src/Facebook/FacebookSession.php' );
require_once( 'Facebook/src/Facebook/FacebookRedirectLoginHelper.php' );
require_once( 'Facebook/src/Facebook/FacebookRequest.php' );
require_once( 'Facebook/src/Facebook/FacebookResponse.php' );
require_once( 'Facebook/src/Facebook/FacebookSDKException.php' );
require_once( 'Facebook/src/Facebook/FacebookRequestException.php' );
require_once( 'Facebook/src/Facebook/FacebookAuthorizationException.php' );
require_once( 'Facebook/src/Facebook/GraphObject.php' ); 
require_once( 'Facebook/src/Facebook/GraphUser.php' ); 
require_once( 'Facebook/src/Facebook/GraphLocation.php' ); 

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\FacebookRequest;
use Facebook\FacebookResponse;
use Facebook\FacebookSDKException;
use Facebook\FacebookRequestException;
use Facebook\FacebookAuthorizationException;
use Facebook\GraphUser;
use Facebook\GraphObject as GraphObject;
use Facebook\GraphLocation;

use Facebook\GraphSessionInfo;
use Facebook\FacebookHttpable;
use Facebook\FacebookCurlHttpClient;
use Facebook\FacebookCurl;

class Controller_Membership extends Controller_App {


    public function before() {

        parent::before();


        $this->template->title = __('p | Membership');

        $this->template->active = 'membership';

    }

 public function action_fbLogin(){
if(!isset($_SESSION)){ session_start();}



$app_id  = '99589535'; // My Facebook App ID
$app_secret  = '6be9bd69b1b2a4d2e3f3dd'; //secret
$required_scope     = 'public_profile, publish_actions, email'; 
$redirect_url  = 'mysite_url';  


Facebook\FacebookSession::setDefaultApplication($app_id , $app_secret);
$helper = new FacebookRedirectLoginHelper($redirect_url);


try {
  $session = $helper->getSessionFromRedirect();
}
 catch(FacebookRequestException $ex) {
    die(" Error : " . $ex->getMessage());
} catch(\Exception $ex) {
    die(" Error : " . $ex->getMessage());
}



var_dump($this->session);
if ($session){ //if we have the FB session


   $request = new FacebookRequest($session, 'GET', '/me');
$response = $request->execute();
$user_profile = $response->getGraphObject();
var_dump($this->request);
    echo '<pre>';
    print_r($user_profile); 
    echo '</pre>';

}
else{


    $login_url = $helper->getLoginUrl( array( 'scope' => $required_scope ) );
    echo '<a href="'.$redirect_url.'">Login with Facebook</a>';
echo '<fb:login-button autologoutlink="true" scope="publish_actions,public_profile,email" onlogin="javascript:CallAfterLogin();"></fb:login-button>';
}

   print_r($user_profile); 




}

您需要先下载Facebook sdk


但是你需要根据你在facebook上创建应用程序时所传递的信息下载sdk v4和域名

它不起作用。我不知道问题出在哪里。我已经下载了sdk 4。你想把我的文件寄给你吗?我已经试了好几天了。。。通过这个链接,你可以下载fb sdk v4和Facebook文件夹,你可以从中复制并保存你的php文件。我下载了Facebook sdk。我试过很多次了,但我不知道哪里错了。是否要查看我的项目文件夹?
<?php

session_start();


require_once( 'Facebook/FacebookSession.php' );

require_once( 'Facebook/FacebookRedirectLoginHelper.php' );

require_once( 'Facebook/FacebookRequest.php' );

require_once( 'Facebook/FacebookResponse.php' );

require_once( 'Facebook/FacebookSDKException.php' );

require_once( 'Facebook/FacebookRequestException.php' );

require_once( 'Facebook/FacebookAuthorizationException.php' );

require_once( 'Facebook/GraphObject.php' );

use Facebook\FacebookSession;

use Facebook\FacebookRedirectLoginHelper;

use Facebook\FacebookRequest;

use Facebook\FacebookResponse;

use Facebook\FacebookSDKException;

use Facebook\FacebookRequestException;

use Facebook\FacebookAuthorizationException;

use Facebook\GraphObject;


// init app with app id (APPID) and secret (SECRET)

FacebookSession::setDefaultApplication('your_app_id','your_secret_key');

// login helper with redirect_uri

$helper = new FacebookRedirectLoginHelper( 'http://www.yahoo.com/' );

try {

 $session = $helper->getSessionFromRedirect();

} catch( FacebookRequestException $ex ) {

  // When Facebook returns an error

} catch( Exception $ex ) {

  // When validation fails or other local issues

}

// see if we have a session

if ( isset( $session ) ) {

  // graph api request for user data

  $request = new FacebookRequest( $session, 'GET', '/me' );

  $response = $request->execute();

  // get response

  $graphObject = $response->getGraphObject();


  // print data

  echo  print_r( $graphObject, 1 );

} else {

  // show login url

  echo '<a href="' . $helper->getLoginUrl() . '">Login</a>';

}