Php FB选项卡页面应用和会话的safari错误
我有个问题 我试着编写一个类似facebook页面标签应用程序的程序。 我必须使用会话来记住已签名的请求 但问题是Safari不记得那个次会议 计划是:Php FB选项卡页面应用和会话的safari错误,php,facebook,session,safari,Php,Facebook,Session,Safari,我有个问题 我试着编写一个类似facebook页面标签应用程序的程序。 我必须使用会话来记住已签名的请求 但问题是Safari不记得那个次会议 计划是: $facebook = new Facebook($config); if (isset($_REQUEST['signed_request'])) { $encoded_sig = null; $payload = null; list($encoded_si
$facebook = new Facebook($config);
if (isset($_REQUEST['signed_request'])) {
$encoded_sig = null;
$payload = null;
list($encoded_sig, $payload) = explode('.', $_REQUEST['signed_request'], 2);
$sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
$signed_request = json_decode(base64_decode(strtr($payload, '-_', '+/'), true),true);
$op=True;
}else {
$op=False;
}
if($op)
{
$_SESSION['liked']=$signed_request['page']['liked'];
$_SESSION['admin']=$signed_request['page']['admin'];
}else{
$url="PAGEAPP URL";
echo("<script> top.location.href='" . $url . "'</script>");
exit();
}
Safari不允许跨域cookie 由于主页是Facebook.com域,并且您的iframe域不同,Safari不会在iframe内处理cookie 尽管其他浏览器也有变通办法,而且Safari也有变通办法,但苹果似乎填补了这个漏洞 虽然我看不到您的完整代码和场景,但我建议您避免使用会话,并始终查询Facebook API以检查“喜欢”和“管理”标志。 如果用户的管理权限被撤销,或者用户不喜欢该页面,则会话变量将变得不同步,除非您不断更新会话变量 检查用户是否喜欢该页面: 检查用户是否是管理员:
未找到。我不能使用$facebook->api/me/li。。因为我没有访问令牌。我必须使用已签名的请求。如果用户离开然后返回应用程序,您是否尝试使用会话变量?或者是在应用程序的不同页面之间移动时存储它们的状态?我使用会话来创建菜单。因为用户从index.php转到page.php。在page.php上,找不到签名的\u请求。链接到page.php是正常的,有php中的tris脚本吗?