我是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)[function.file-get-contents]:无法打开stream:HTTP请求失败! HTTP / 1.0 400错误请求
我认为当用户在facebook中注销登录时我需要清除cookie,但我不知道如何在PHP SDK中执行此操作。请帮忙。谢谢!
答案 0 :(得分:1)
我尝试通过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
}
答案 1 :(得分:0)