我正在尝试整合 Facebook PHP-SDK 4和 Symfony2
我使用 composer 和 Facebook 开发者文档中的一些基本代码安装了 Facebook SDK
生成 Facebook 登录网址
public function indexAction(Request $request) {
//Generate
FacebookSession::setDefaultApplication('appId', 'secret');
$redirectUrl = $this->generateUrl('auth_facebookredirect');
$helper = new FacebookRedirectLoginHelper($redirectUrl);
$helper->disableSessionStatusCheck();
$loginUrl = $helper->getLoginUrl();
return $this->render('UserBundle:FB:index.html.twig', array('loginUrl'=>$loginUrl));
}
登录成功后的回调或Facebook重定向
public function successAction(Request $request) {
FacebookSession::setDefaultApplication('appId', 'secret');
$redirectUrl = $this->generateUrl('auth_facebookredirect');
$helper = new FacebookRedirectLoginHelper();
//$session = $helper->getSessionFromRedirect();
try {
$session = $helper->getSessionFromRedirect();
} catch (FacebookRequestException $ex) {
echo " When Facebook returns an error";
} catch (\Exception $ex) {
echo " When validation fails or other local issues";
}
if ($session) {
$me = (new FacebookRequest(
$session, 'GET', '/me'
))->execute()->getGraphObject(GraphUser::className());
var_dump($me);
}
return $this->render('UserBundle:FB:success.html.twig', array());
}
首先我得到了错误
FacebookSDKException: Session not active, could not store state.
我遇到了 this link它说 session 和使用有问题
$helper->disableSessionStatusCheck();
因为这个登录有效,但是当我在 FB 登录后被重定向到 Facebook 回调 URL/重定向 URL 时,我得到了异常
DefaultApplication is not set
所以我添加了FacebookSession::setDefaultApplication('appId', 'secret');
在successAction
在下面的部分登录后仍然出现错误,我无法在此处获取 session 。
try {
$session = $helper->getSessionFromRedirect();
} catch (FacebookRequestException $ex) {
echo " When Facebook returns an error";
} catch (\Exception $ex) {
echo " When validation fails or other local issues";
}
我在这里遇到错误 catch (\Exception $ex) {<br/>
echo " When validation fails or other local issues";
}
$session = helper->getSessionFromRedirect();
是什么导致这里出现错误,我的 Facebook 登录凭据是正确的。
我无法找出这个错误。
最佳答案
尝试这样做。
$helper = new FacebookRedirectLoginHelper(
$this->generateUrl('app_home',[],true),//generates absolute ur;
$this->container->getParameter('facebook_sdk.app_id'), //api id
$this->container->getParameter('facebook_sdk.app_secret')//app secret
);
关于php - 登录时 Symfony2 和 PHP SDK 4.0 session 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30819700/