我整天都在寻找答案..但似乎没有什么能解决它。 我想每个版本都有不同的问题......
嗯,这很简单,我有这个代码:
<?php
include_once("facebook.php"); //include facebook SDK
######### edit details ##########
$appId = '****'; //Facebook App ID
$appSecret = '****'; // Facebook App Secret
##################################
//Call Facebook API
$facebook = new Facebook(array(
'appId' => $appId,
'secret' => $appSecret,
'cookie' => true
));
$fbuser = $facebook->getUser();
if ($fbuser) {
// Do Something
}
else{
//Show login button for guest users
$loginUrl = $facebook->getLoginUrl(array('redirect_uri'=>$homeurl,'scope'=>$fbPermissions));
echo '<a href="'.$loginUrl.'"><img src="images/facebook-login.png" border="0"></a>';
}
?>
我每次都获得0。 当我去“登录Facebook”并且我没有登录时,我得到了facebook登录屏幕。 当我去“登录facebook”并且我登录时,facebook会将我重定向到我的页面,我再次获得用户获得0。
我想在我的localhost上运行它,也许这就是问题?
希望有人能帮忙.. THX
答案 0 :(得分:5)
我使用相同的简单登录脚本遇到了类似的问题。我几乎尝试了什么但没有任何帮助。 (奇怪的是,在一切正常的前一天)。
所以开始调试“base_facebook.php”,发现函数 getAccessTokenFromCode 没有异常(静默)。
事实证明_oauthRequest的响应给出了错误消息回复而不是预期的令牌回复:
$access_token_response =
$this->_oauthRequest(
$this->getUrl('graph', '/oauth/access_token'),
$params = array ('client_id' => $this->getAppId(),
'client_secret' => $this->getAppSecret(),
'redirect_uri' => $redirect_uri,
'code' => $code));
所以通过添加echo $ access_token_response;直接在这个功能之后找到了我的问题。
响应错误是我的应用配置为原生/桌面应用。 我将其更改为 Internet 之后的getUser();给出了正确的用户ID。
我希望这会有所帮助。
答案 1 :(得分:-1)
试试这个,这是我的同学写的一段代码,因为我正在努力使用FB登录。为我工作。
<?php
session_start();
require_once 'facebook/facebook.php';
$facebook = new Facebook(array(
'appId' => '3525325', <- fake appID ofcourse, enter your own
'secret' => 'fauuf983f9f', <- fake secret, enter your own
));
$user = $facebook->getUser();
if ($user) {
try {
$_fb['user'] = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$_fb['user'] = null;
}
}
if ($user)
{
$_fb['logouturl'] = $facebook->getLogoutUrl();
$_fb['authed'] = true;
echo '<h1>Logged in</h1>';
echo 'Fbid: '.$user;
echo "<br /><br /><pre>";
print_r($_fb['user']);
echo "</pre>";
}
else
{
$_fb['loginurl'] = $facebook->getLoginUrl(array('scope' => 'email'));
$_fb['authed'] = false;
echo '<a href="'.$_fb['loginurl'].'">Login with Facebook</a>';
}
?>
<html>
<head>
<title>Login</title>
</head>
<body>
</body>
</html>
希望它对你有用。祝你好运:) Facebook登录给我带来了很大的烦恼:p