PHP SDK需要两次登录…不';我先不认得
我使用以下代码来验证用户是否登录。虽然用户可以登录,但他们必须单击登录按钮两次。此外,有时甚至在他们两次单击“登录”按钮后,我的页面“用户信息”部分(在页面中的位置早于内容)显示他们已注销,而实际页面显示他们已登录 这是代码。有人能建议一种更好的处理登录的方法吗PHP SDK需要两次登录…不';我先不认得,php,facebook,login,sdk,Php,Facebook,Login,Sdk,我使用以下代码来验证用户是否登录。虽然用户可以登录,但他们必须单击登录按钮两次。此外,有时甚至在他们两次单击“登录”按钮后,我的页面“用户信息”部分(在页面中的位置早于内容)显示他们已注销,而实际页面显示他们已登录 这是代码。有人能建议一种更好的处理登录的方法吗 function isLoggedIn($facebook) { if (isset($facebook) and $facebook->getUser() != 0) { // UserID exists
function isLoggedIn($facebook) {
if (isset($facebook) and $facebook->getUser() != 0) {
// UserID exists, but user may still not be logged in. Let's check:
try {
$facebook->api('/me', 'GET');
// If this succeeds, then they are logged in.
return true;
} catch(FacebookApiException $e) {
// Some kind of error, so not logged in.
if(session_id() === '')
session_destroy();
return false;
}
} else {
if(session_id() === '')
session_destroy();
return false;
}
}
谢谢
$facebook = new Facebook(array( /* the data */));
$user = $facebook->getUser();
if($user) {
//loged
} else {
//not loged
}
足够了吗?好吧,这里有一个快速解决方案。。。也许很脏,但我需要让它工作。必须点击两次是荒谬的
$user = $facebook->getUser();
if($user) {
// do stuff cause user is now logged
}
if(isset($_GET['fb_logged']) && $user == 0) {
// not logged, would have to click twice but let's help that user.
header('Location: '.$loginUrl);
}
我也有同样的问题,我曾两次启动$facebook实例,通过使用一个并添加“offline_access”解决了这个问题,到目前为止它仍然有效,现在只需点击一次登录即可
$facebook = new Facebook(array( /* the data */));
你的应用程序在Facebook(画布页面)上吗?不,它是一个独立的网站。我有完全相同的问题!我发现任何地方都没有答案:(你有什么收获吗?
offline\u访问
权限早就被删除了,所以请不要再推荐了。