Facebook PHP SDK - getSessionFromRedirect()为某些人返回NULL

This is a sort of weird problem, it works for some people but not for others. I have set the app to public on Facebook, so it's not as if it's in developer mode or private.

On the page where "Login with Facebook" is, I have:

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>';

Then on facebookResponse.php I have the following;

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

For me and a few others, this is shown as a result of var_dump($session) (I removed accessToken in this snippet)

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 }

And for anyone else, they just get NULL.