我是Facebook API的新手,我已经搜索了很多次来解决这个问题,但我没有成功地找到一个。即使在用户从facebook注销之后,浏览器仍然可以获取上一次会话的cookie。
它是这样做的: 1.用户登录到facebook。2.打开应用程序。3.退出facebook。3.打开应用程序(未登录),应用程序将加载并显示错误
消息: file_get_contents(https://graph.facebook.com/me/friends?access_token=157847364248123|2.pqWqIaCD8BKobvG_kJy9sA__.3600.1295859600-100001714363073|QfoJpTH-slOry2K1FepeyW8z5f8)函数.file-get-contents:无法打开流: HTTP请求失败!HTTP/1.0 400错误请求
我认为当用户在facebook中勾选注销时,我需要清除cookie,但我不知道如何在PHP SDK中做到这一点。请帮帮忙。谢谢!
发布于 2011-01-24 16:00:49
发布于 2011-01-27 09:08:04
我尝试通过Javascript从facebook上捕获用户注销,然后JS将重定向到清除cookie的控制器函数,但这对我不起作用。我的应用程序仍然使用旧会话,这会导致即使用户注销,我的应用程序也会加载错误。
但我只需在会话检查中添加以下两行代码即可解决问题:
$uid = $facebook->getUser();
$me = $facebook->api('/me');当此检查失败时,页面将重定向到facebook登录页面。我的代码是这样的:
$facebook = new Facebook(array(
'appId' => 'XXXXXXXXXX',
'secret' => 'XXXXXXXXXXXXXXXXXXX',
'cookie' => true,
));
$session = $facebook->getSession();
$me = NULL;
if ($session)
{
try
{
$uid = $facebook->getUser();
$me = $facebook->api('/me');
/// OTHER PROCESS
$this->load->view('app_page', $data);
}
catch (FacebookApiException $e)
{
error_log($e);
$this->output->set_header("Location: http://www.facebook.com, TRUE, 302");
}
}
else
{
/// GO TO PERMISSION REQUEST
}https://stackoverflow.com/questions/4779784
复制相似问题