1

我正在开发 Facebook iframe 应用程序。我同时使用 PHP SDK 和 JS SDK。在我的索引文件中,我调用 PHP SDK 以获取有关用户的一些信息。这包括 getUser() 函数,该函数始终在索引中工作。

但是,我还有许多其他 PHP 文件,当用户单击某些链接时,我使用它们来填充索引中的 div。我在每个文件中都使用了 FB PHP SDK,以确保用户仍然登录到 FB。也就是说,当执行这些文件时,我调用 getUser() 函数来获取用户的 ID 并确定该人是否仍然登录。我通过 jQuery 的 load() 函数将这些 PHP 文件的内容注入索引中的 div .

这在 FFox、Opera、IE 和 Chrome 下工作得很好,但在 Safari 的某些安装下却不行。具体来说,我遇到了 5.1.5 (7534.55.3) 的重大问题。在此版本的 Safari 下,当 jQuery 加载函数调用 PHP 文件时,getUser() 函数似乎总是返回 0(零)。我假设这与会话 cookie 有关?我真的不知道,希望这里有人可以为我解释一下。谢谢..

4

2 回答 2

0

您可以将其添加到您的网站:

<?php
$uid = $facebook->getUser();

if ($uid==0) {

    $params = array(
      'scope' => 'read_stream, friends_likes',
      'redirect_uri' => 'https://www.myapp.com/post_login_page'
    );

    $loginUrl = $facebook->getLoginUrl($params);
    echo '<a href="'.$loginUrl.'">You need first to Login</a>';
    exit();

} else {

     //Continue your site code

} 


?>
于 2013-03-22T21:40:14.017 回答
0

不确定这是否是一个问题,但它在一段时间内影响了我的 Safari FB 应用程序开发。查看此 SA 答案以修复它,我几乎完全遵循它并且它有效。Safari 5.1.5 中 iframe 上缺少 cookie

于 2013-09-06T04:17:33.513 回答