我目前正在为我的项目使用PHP Facebook SDK(http://github.com/facebook/php-sdk/)。我已经设置好了,用户必须点击一个链接才能访问Facebook,Facebook会验证用户使用该应用程序,然后将会话详细信息返回到我的网站,这很好。但是,我希望将这些会话详细信息存储在数据库中,以便用户登录时可随时访问其帐户中的信息。目前,如果用户从Facebook注销,然后尝试从我的网站检索信息,我会收到以下异常“OAuthInvalidTokenException:处理访问令牌时出错”。如果用户在同一台PC上登录到Facebook,那么就没有问题。Facebook PHP SDK - 保持登录状态
有什么我必须设置,或者是否有其他方式我应该执行此连接能够检索数据时,用户没有登录?
我用得到的代码/设置了Facebook会话:
require 'libraries/facebook/facebook.php';
// Create our Application instance (replace this with your appId and secret).
$facebook = new Facebook(array(
'appId' => 'xxxx',
'secret' => 'xxxx',
));
$session = $facebook->getSession();
$me = null;
// Session based API call.
if ($session) {
//Save to database
} catch (FacebookApiException $e) {
error_log($e);
}
} else {
$loginUrl = $facebook->getLoginUrl();
header('Location: ' . $loginUrl);
}
有一次我保存从这一部分数据库中的会话,我通过发布系列化会议,这显示数据库中的数据:
$session = unserialize($_POST['session']);
require_once('libraries/facebook/facebook.php');
$facebook = new Facebook(array(
'appId' => 'xxxx',
'secret' => 'xxxx',
));
$facebook->setSession($session, false);
try {
$uid = $facebook->getUser();
// Do stuff
} catch (FacebookApiException $e) {
echo "<tr><td>" . $e . "</td>";
}
这里有什么明显的错误吗?或者我是否可以不使用此方法创建oAuth连接,以便在用户未登录时向用户请求数据?
感谢,
丹
这个项目是使用Facebook Connect的第三方网站;桌面应用程序;或现场Facebook应用程序? – 2010-09-09 10:04:17
这是一个网站 - 不过在实验中,我已经将应用程序的类型改为“原生应用程序”,然后它提供了“保持登录到xxx”的选项,可以打勾这是我正在寻找的! – Dan 2010-09-09 10:44:31
@Dan你在哪里找到该复选框?我已经切换到“原生”,但我无法看到我的应用程序页面上的任何地方的复选框:( – Chud37 2013-02-28 09:34:00