我整天都在寻找答案..但似乎没有什么能解决它.我猜每个版本都有不同的问题......
好吧,这很简单,我有这个代码:
<?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>';
}
?>
Run Code Online (Sandbox Code Playgroud)
每次获得用户我得0.当我去"登录Facebook"并且我没有登录时,我得到了facebook登录屏幕.当我去"登录facebook"并且我登录时,facebook会将我重定向到我的页面,然后我再次获得用户0.
我想在我的本地主机上运行它,也许这就是问题所在?
希望有人可以帮助.. thx
小智 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));
Run Code Online (Sandbox Code Playgroud)
所以通过添加echo $ access_token_response; 直接在这个功能后找到了我的问题.
响应错误是我的应用程序配置为Native/Desktop应用程序.我把它改成了互联网之后的getUser(); 给出了正确的用户ID.
我希望这有帮助.
| 归档时间: |
|
| 查看次数: |
8752 次 |
| 最近记录: |