Facebook PHP SDK - getSessionFromRedirect()为某些人

时间:2015-06-24 11:18:14

标签: php facebook sdk facebook-sdk-4.0

这是一个奇怪的问题,它适用于某些人,但不适用于其他人。我已经在Facebook上将应用程序设置为公开,因此它不像处于开发者模式或私有状态。

在“使用Facebook登录”的页面上,我有:

session_start();
define('FACEBOOK_SDK_V4_SRC_DIR', 'path/to/facebook');
require("path/to/autoload.php");

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;

FacebookSession::setDefaultApplication(1234, 'a1b2c3');

$helper = new FacebookRedirectLoginHelper('http://chronimate.com/facebookResponse.php');
$loginUrl = $helper->getLoginUrl();
echo '<a href="' . $loginUrl . '">Login with Facebook</a>';

然后在facebookResponse.php我有以下内容;

session_start();
define('FACEBOOK_SDK_V4_SRC_DIR', 'path/to/facebook');
require("path/to/autoload.php");

use Facebook\FacebookSession;
use Facebook\FacebookRedirectLoginHelper;

FacebookSession::setDefaultApplication(1234, 'a1b2c3');

$helper = new FacebookRedirectLoginHelper("http://chronimate.com/facebookResponse.php");

try {
    $session = $helper->getSessionFromRedirect();
    var_dump($session);
} catch(FacebookRequestException $ex) {
} catch(\Exception $ex) {
}
if ($session) {
    var_dump($session);
}

对于我和其他一些人,这显示为var_dump($session)的结果(我在此代码段中删除了accessToken)

object(Facebook\FacebookSession)#9 (2) { ["accessToken":"Facebook\FacebookSession":private]=> object(Facebook\Entities\AccessToken)#3 (3) { ["accessToken":protected]=> string(218) "xxx" ["machineId":protected]=> NULL ["expiresAt":protected]=> NULL } ["signedRequest":"Facebook\FacebookSession":private]=> NULL }

对于其他任何人,他们只得到NULL

0 个答案:

没有答案