我正在使用Facebook PHP API 4.0並嘗試獲取會話變量以設置,所以我可以使用用戶的Facebook數據。Facebook連接PHP會話變量不會設置
該應用程序和Facebook批准頁面都按預期工作,但$ session變量仍然未設置,無論我嘗試什麼。我試圖從Stack的類似問題中找到解決方案,但沒有成功。這是我使用的代碼:
session_start();
//start fb login stuff
require_once($config['basedir'].'/Facebook/FacebookSession.php');
require_once($config['basedir'].'/Facebook/FacebookRedirectLoginHelper.php');
require_once($config['basedir'].'/Facebook/FacebookRequest.php');
require_once($config['basedir'].'/Facebook/FacebookResponse.php');
require_once($config['basedir'].'/Facebook/FacebookSDKException.php');
require_once($config['basedir'].'/Facebook/FacebookRequestException.php');
require_once($config['basedir'].'/Facebook/FacebookAuthorizationException.php');
require_once($config['basedir'].'/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($fb_app, $fb_secret);
$helper = new FacebookRedirectLoginHelper($config['baseurl']);
try {
$session = $helper->getSessionFromRedirect();
} catch(FacebookRequestException $ex) {
// When Facebook returns an error
echo $ex;
} catch(\Exception $ex) {
// When validation fails or other local issues
echo $ex;
}
if ($session) {
echo 'Session var is finally being seen';
}
//end Facebook login stuff
那麼,什麼是在例外?從你的代碼中,我們看到你只是忽略了拋出的異常。 – zerkms 2014-09-23 01:45:11
那麼工作流程是什麼?用戶是否被重定向到你的頁面?你究竟做了什麼來獲得預期的結果? – zerkms 2014-09-23 02:12:04
用戶必須通過Facebook批准應用程序,然後將其重定向到包含上述代碼的索引頁面。 IE瀏覽器。他們被從登錄頁面重定向到索引頁面,索引頁面有一個配置頁面,包括'require_once('config.php');'這個配置頁面有上面的代碼來檢查用戶是否通過Facebook登錄。 – JimmyBanks 2014-09-23 14:03:55