Facebook PHP SDK:如何获取$ helper-> getSessionFromRedirect()以返回有效会话

时间:2014-10-31 23:04:47

标签: php facebook facebook-graph-api

我正在使用Facebook PHP SDK登录用户,但是当用户从Facebook登录URL返回时,在登录后,$helper->getSessionFromRedirect()会返回NULL,而不是使用有效的会话

我已关注Facebook's docs,阅读有关这些类似问题的答案和评论:

  • php facebook登录getSessionFromRedirect为空(我没有足够的重复点来发布所有链接的链接)
  • Facebook php sdk:getSessionFromRedirect返回null
  • 尽管用户已登录,为什么facebook的getSessionFromRedirect()方法返回NULL?

我在网络上找到other solutions,我的代码与其他人认为适合他们的解决方案相匹配,但我遗漏了一些东西。

我有自己的Facebook应用设置,并且网站网址和应用领域设置为该应用所在的网址。

我有两页。

首先是“使用Facebook登录”链接。

第二个处理来自Facebook的响应,应该启动用户的会话。

以下是登录页面的代码:

session_start();

// using Composer
require 'vendor/autoload.php';

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;

$app_id = 'my_id';
$app_secret = 'my_secret';
$redirect_url = 'my_redirect_url';

FacebookSession::setDefaultApplication($app_id, $app_secret);

$helper = new FacebookRedirectLoginHelper($redirect_url);
$loginUrl = $helper->getLoginUrl();

echo '<a href="' . $loginUrl . '">Login with Facebook</a>';

这是第二页的代码,用于在登录后收到回复,app.php

session_start();

require 'vendor/autoload.php';

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;

$app_id = 'my_id';
$app_secret = 'my_secret';
$redirect_url = 'my_redirect_url';

FacebookSession::setDefaultApplication($app_id, $app_secret);

$helper = new FacebookRedirectLoginHelper($redirect_url);
$session = $helper->getSessionFromRedirect();

var_dump($helper);

这是我从var_dump($helper)获得的,最后请注意session: NULL

object(Facebook\FacebookRedirectLoginHelper)#2 (6) { ["appId":"Facebook\FacebookRedirectLoginHelper":private]=> string(16) "my_id" ["appSecret":"Facebook\FacebookRedirectLoginHelper":private]=> string(32) "my_secret" ["redirectUrl":"Facebook\FacebookRedirectLoginHelper":private]=> string(32) "my_redirect_url" ["sessionPrefix":"Facebook\FacebookRedirectLoginHelper":private]=> string(6) "FBRLH_" ["state":protected]=> string(32) "a_32_character_string" ["checkForSessionStatus":protected]=> bool(true) } session: NULL

任何帮助都会很棒。这也是我的第一个问题,所以如果我能做任何事情来改进它,请告诉我。

0 个答案:

没有答案