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