Facebook的PHP SDK getUser()返回0在Windows上的Safari
问题描述:
我正在Facebook的iframe应用程序工作。我正在使用PHP SDK和JS SDK。在我的索引文件中,我会调用PHP SDK获取关于用户的一些信息。这包括getUser()函数,它始终在索引中工作。Facebook的PHP SDK getUser()返回0在Windows上的Safari
但是,我有一些其他的PHP文件,当用户点击某些链接时,我用它来填充索引中的div。我在这些文件的每一个文件中使用FB PHP SDK来确保用户仍然登录到FB。也就是说,执行这些文件时,我调用getUser()函数来获取用户的ID并确定该用户是否仍然登录。我通过jQuery的load()函数将这些PHP文件的内容注入索引中的div中。
这在FFox,Opera,IE和Chrome下工作得很好,但是在Safari的某些安装中,它却没有。具体来说,我有5.1.5(7534.55.3)的主要问题。当这个版本的Safari下的jQuery加载函数调用PHP文件时,getUser()函数总是返回0(零)。我认为这与会话cookie有关?我真的不知道,希望能在这里为我提供一些启示。谢谢..
答
不知道这是一个问题,更多的,但它影响到了我的Safari FB应用开发一段时间。看看这个SA答案来解决它,我几乎完全遵循它,它的工作。 Missing cookies on iframe in safari 5.1.5
答
,你可以添加到您的网站:
<?php
$uid = $facebook->getUser();
if ($uid==0) {
$params = array(
'scope' => 'read_stream, friends_likes',
'redirect_uri' => 'https://www.myapp.com/post_login_page'
);
$loginUrl = $facebook->getLoginUrl($params);
echo '<a href="'.$loginUrl.'">You need first to Login</a>';
exit();
} else {
//Continue your site code
}
?>
难道这个问题有帮助吗? http://stackoverflow.com/questions/10192142/missing-cookies-on-iframe-in-safari-5-1-5 –
噢,我的天啊,谢谢你!我不知道Safari上发生了什么。如果您想获得信贷,请随时就此问题作出回答。 :) – keybored