为什么 FacebookSession::newAppSession()->validate() 会抛出异常"会话已过期,或对此应用无效"?



我有以下代码:

<?php
session_start();
require 'vendor/autoload.php';
use FacebookFacebookSession;
FacebookSession::setDefaultApplication('foo', 'bar');
$session = FacebookSession::newAppSession();
try {
    $session->validate();
} catch (Exception $ex) {
    print_r($ex);
}
?>   

我提供了正确的应用程序信息,但它抛出了一个错误:

...Session has expired, or is not valid for this app...

请帮。

您应该基于accessToken创建会话,然后验证会话。您不能只使用appId和secret来验证会话(在不了解会话本身的情况下)。

尝试在仪表板的"Settings"选项卡上添加一个平台

这是老版本php-sdk-v4中的一个错误。升级你的SDK,这应该可以工作。