Facebook PHP sdk没有使用iframe链接设置cookie

时间:2012-12-16 00:56:35

标签: facebook facebook-graph-api facebook-apps

我正在使用PHP sdk for Facebook。

require_once 'facebook-sdk/facebook.php';

session_start();

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

$facebook->getUser();

if($user){
   // do stuff
}else{
   //redirect to app login
}

在这段代码之后,我的页面上有一个链接指向带有查询字符串的同一页面。

类似于<a href="/index.php?step=2">Continue</a>

但是当我点击此链接时,$ user为“0”。这只发生在Safari和IE浏览器中。当我检查app设置的cookie在这些浏览器中不存在时。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

由于用户ID不会改变,如果你通过GET发送它会有问题吗?

<a href="/index.php?step=2&id=<? echo $user ?>">Continue</a>

,然后在脚本的顶部,以及按照您的方式获取$ user:

if($_GET['step'] == 2){
   $user = $_GET['id'];
}

如果你真的需要保留cookie,你可以在脚本的顶部添加它,它必须是第一行。

header('P3P: CP="CAO COR CURa ADMa DEVa OUR IND ONL COM DEM PRE"');

您也可以查看此问题

Iframe Facebook application and cookies [Internet Explorer]

Session Lost on IE Facebook App iFrame

与标题解决方案有关。