Facebook iFrame应用程序不再工作

Facebook iFrame应用程序不再工作,facebook,session,iframe,Facebook,Session,Iframe,我有一个简单的Facebook应用程序,它以前在旧的API中工作。这是一个iFrame应用程序,无论我如何尝试,都无法使用新API获得用户会话。这是我现在的代码 error_reporting(E_ALL); require 'facebook.php'; $facebook = new Facebook(array( 'appId' => 'xxxx', 'secret' => 'xxxx', 'cookie' => true, )); $session

我有一个简单的Facebook应用程序,它以前在旧的API中工作。这是一个iFrame应用程序,无论我如何尝试,都无法使用新API获得用户会话。这是我现在的代码

error_reporting(E_ALL);

require 'facebook.php';

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

$session = $facebook->getSession();
if ( !$session )
{
 //echo "Failed. No session.<br />";

    $url = $facebook->getLoginUrl(array(
               'canvas' => 1,
               'fbconnect' => 0,
               'next'=>'http://www.facebook.com',
               'cancel_url' => 'http://www.facebook.com'
           ));

    //echo "<script type='text/javascript'>top.location.href = '$url';</script>";
    echo "<a href='".$url."' target='_blank'>First time using this App? Click here to connect it to your Facebook.</a>";

}
else {

    try {

        $uid = $facebook->getUser();
        $me = $facebook->api('/me');

        $updated = date("l, F j, Y", strtotime($me['updated_time']));

        echo "Hello " . $me['name'] . "<br />";
        echo "You last updated your profile on " . $updated;

    } catch (FacebookApiException $e) {

        echo "Error:" . print_r($e, true);

    }
}
错误报告(E_ALL);
需要“facebook.php”;
$facebook=新的facebook(数组)(
“appId”=>“xxxx”,
“机密”=>“xxxx”,
“cookie”=>正确,
));
$session=$facebook->getSession();
如果(!$session)
{
//echo“失败。没有会话。
”; $url=$facebook->getLoginUrl(数组)( “画布”=>1, “fbconnect”=>0, '下一个'=>'http://www.facebook.com', '取消url'=>'http://www.facebook.com' )); //echo“top.location.href='$url';”; 回声“; } 否则{ 试一试{ $uid=$facebook->getUser(); $me=$facebook->api('/me'); $updated=日期(“l,F j,Y”,strottime($me['updated_time']); 回声“你好”。$me['name']。“
”; echo“您上次更新您的个人资料是在”.$updated; }捕获(FacebookApiException$e){ echo“Error:”.print\u r($e,true); } }

我尝试了各种方法,但$session从未返回(单击链接后)。我使用的是正确的appID/secret/facebook.php,但它总是落在下面$会话if路径。我做错了什么?

使用新版本的php sdk(3.1.1):)


您的代码使用旧的sdk(在新版本中没有getSession方法),并且您可能已将迁移设置“OAuth migration”设置为true。

这是否与相关?^我不这样认为,我的站点/域不使用SSL。我将尝试一下。我能做些什么来测试并确定这是问题所在吗?我不想重写代码后仍然发现它不起作用。您可以尝试更改迁移应用程序设置。但无论如何,您必须在2011年10月1日之前切换到新的sdk,所以现在更好了。