Facebook PHP SDK显示未登录

问题描述:

我是新来的Facebook PHP SDK,我登录到Facebook,但是当我运行example.php文件时,它总是显示我已注销。Facebook PHP SDK显示未登录

当我尝试下面的代码:

require '../src/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => 'XXXXX',//I am using my own APP ID and KEY 
    'secret' => 'XXXXX', 
)); 

$user = $facebook->getUser(); 

echo var_dump($facebook); 

这是给我下面的输出:

object(Facebook)[1] 
    protected 'appId' => string 'XXXXXX' (length=15) 
    protected 'appSecret' => string 'XXXXXXX' (length=32) 
    protected 'user' => int 0 
    protected 'signedRequest' => null 
    protected 'state' => string '151c32d04cd0175f24292bda479a2d45' (length=32) 
    protected 'accessToken' => string '253401284678598|80fa394218494b87c2f96640da5a32eb' (length=48) 
    protected 'fileUploadSupport' => boolean false 

谁能帮我在这?

您必须检查用户标识是否为空,并将其重定向到登录网址。

if(!$user) { 
$dialog_url= "https://www.facebook.com/dialog/oauth?" 
    . "client_id=" . FB_APP_ID 
    . "&redirect_uri=" . urlencode($redirect_url) 
    . "&scope=" . implode(',', $permissions); 
    exit("<script> top.location.href='" . $dialog_url ."'</script>"); 

} 

FB_APP_ID是你的appid

$ REDIRECT_URL可以根据你的需要,你希望用户givving您权限后登陆你的页面标签,画布应用或网站。

$ permissions是一个具有所需权限的数组。如果您只需要基本权限,请删除. implode(',', $permissions)

+0

但为什么表明我没有登录?为什么SDK没有参加我的会议? – Nick 2012-03-01 16:52:25

您可能会缺少p3p标头,导致您的浏览器不接受来自您网站上的Facebook的cookie。请参阅:http://www.hanselman.com/blog/TheImportanceOfP3PAndACompactPrivacyPolicy.aspx了解更多信息。