dousa1630 2015-06-13 14:23
浏览 70

登录时出现Symfony2和PHP SDK 4.0会话问题

I am trying to integrate Facebook PHP-SDK 4 and Symfony2

I installed Facebook SDK using composer and using some basic code from Facebook developer documentation

Generate Facebook Login Url

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));
    }

Callback or Facebook Redirect after login success

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());
    }

First I got error

FacebookSDKException: Session not active, could not store state.

I came across this link and it says there is issue with session and used

$helper->disableSessionStatusCheck();

because of this login worked, but when I got redirected to Facebook callback URL / Redirect URL after FB login I got Exception that

DefaultApplication is not set

so I added FacebookSession::setDefaultApplication('appId', 'secret'); at successAction

still I get error after login at section below, I can't get session here.

try {
            $session = $helper->getSessionFromRedirect();

        } catch (FacebookRequestException $ex) {
            echo " When Facebook returns an error";
        } catch (\Exception $ex) {            
            echo " When validation fails or other local issues"; 
        }

I get error here catch (\Exception $ex) {
echo " When validation fails or other local issues"; }

$session = helper->getSessionFromRedirect();

what is causing error here, my Facebook login Credentials are correct.

I am unable to figure out this error.

  • 写回答

1条回答 默认 最新

  • doubei3312 2015-06-28 06:04
    关注

    Try doing it this way.

    $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
                );
    
    评论

报告相同问题?

悬赏问题

  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)