php - 登录时 Symfony2 和 PHP SDK 4.0 session 问题

标签 php facebook symfony session facebook-sdk-4.0

我正在尝试整合 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/

相关文章:

php - 复杂的Json处理-PHP

iphone - 为单个设备上的多个用户自动重新授权 Facebook

ios - Flex 4.5 Mobile - Facebook 授权

php - swiftmailer 动态附加 Symfony

php - 使用 PHP 添加到 WAMP 服务器中创建的数据库?

PHP:从数组中取出重复的数字然后打印出来

c# - 是否有模拟 facebook 的 "Link Detect"的库?

symfony - 奇怪的 HWIOAuthBundle 和 Twig 错误 "No resource owner with name ' google'。”

symfony - 按翻译值排序的表单实体

php - 使用 php 生成的列表