我正在使用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