$ facebook-> getUser()一直在safari中返回0并且有时会返回firefox

时间:2012-06-19 14:07:54

标签: safari facebook-php-sdk

我有一个facebook应用程序,它在一个托管服务器上工作得非常好。 我们仍然在另一个托管服务商中迁移应用程序,我们对以下代码有疑问:

header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');
session_start();
require "facebook-facebook-php-sdk-5ba36bc/src/facebook.php";

$facebook = new Facebook(array(
  'appId' => $app_id,
  'secret' => $app_secret,
  'cookie' => true,
));

$user = $facebook->getUser();

在Safari中,有时在Firefox和Windows7中,getUser()都会返回0!

你知道为什么吗?什么是解决方案?

谢谢!

编辑:

更改P3P并不能解决任何问题。

之前:

header('P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"');

后:

header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

甚至这个:

  header('P3P: CP="ALL IND DSP COR ADM CONo CUR CUSo IVAo IVDo PSA PSD TAI TELo OUR SAMo CNT COM INT NAV ONL PHY PRE PUR UNI"');

无法解决此问题:(。

另一个想法?

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,我通过手动将域名添加到 getloginURL 来解决了这个问题,(在Facebook开发者的应用配置中也是如此).Facebook不知何故对cookie感到厌倦。希望它有所帮助!

PHP SDK

$this->fb->getLoginUrl( array( 
    'domain'=>'http://mysite.com',
    'scope' => $this->scope,
    'redirect_uri' => $endpoint,
    'display' => 'popup' 
    ) 
);

答案 1 :(得分:0)

只需将您的php标题更改为

即可
header('P3P: CP="NOI ADM DEV COM NAV OUR STP"');