Facebook PHP SDK显示未登录

时间:2012-03-01 14:51:37

标签: php facebook

我是facebook PHP SDK的新手,我登录到facebook,但是当我运行example.php文件时,它总是显示我已退出。

当我尝试使用以下代码时:

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

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您必须检查userid是否为空并将其重定向到登录URL。

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可以是您的页面选项卡,画布应用程序或网站,具体取决于您希望用户在获得权限后登陆的位置。

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

答案 1 :(得分:0)

您可能缺少p3p标头,导致您的浏览器不接受您网站上的Facebook Cookie。有关详细信息,请参阅:http://www.hanselman.com/blog/TheImportanceOfP3PAndACompactPrivacyPolicy.aspx