2011-11-30 130 views
1

FBML问题后,我切换到iFrame应用程序。除了2件事外,现在除了2件事外:Facebook应用程序 - 服务器没有响应

1)如果我没有在应用程序中输入几个小时,我尝试输入,有时它会给我错误页面,我的服务器没有响应。它显示了带有iFrame的Faceboob页面,其中显示了错误。 1或2刷新后,它工作正常。

2)我实现了新的SDK与登录这样

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

$user = $facebook->getUser(); 

$loginUrl = $facebook->getLoginUrl(); 

if ($user) { 
    try { 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    d($e); 
    $user = null; 
    } 
} 

if (!$user) { 
    echo "<script type='text/javascript'> 
       top.location.href = '$loginUrl'; 
      </script>"; 
    exit; 
} 

问题是我的第一个重定向页面,当用户第一次进入。它重定向到我的服务器URL而不是我的Facebook应用程序URL。如果我试图这样说:

$loginUrl = $facebook->getLoginUrl(
    array(
     'redirect_uri' => 'http://apps.facebook.com/xxx/' 
    ) 
); 

登录进入无限循环。

任何解决这两个问题帮助是值得欢迎:-)

感谢

回答

0

Darko4spain当用户被重定向到你的网站,你可以检测,如果是用JavaScript iframe和送他们回去。我的应用程序有同样的问题。这不是一个漂亮的解决方法,但它可以工作。


if (window!=window.top) { 
//FB.Canvas.setAutoResize(); 
setTimeout("FB.Canvas.setAutoGrow()", 1400); 
}else { 
top.location.href = 'https://apps.facebook.com/AnotherFeed/?ref=redirect#comments'; 
} 

例如:https://anotherfeed.com/plugins/index.php会重定向你回到我的画布,如果你不是在画布上。

+1

嗨!感谢您的回答。您的解决方案并不完全符合您的需求,并指出我正确的方向。问题在于,mu用户通过myapp.com?id = 123456&lang = en之类的链接进入到应用程序中。所以,而不是我总是将它们重定向到我的主要网址Y将失去所有参数。所以,我现在想的是替换字符串,只需更改www.server_url.com/与www.fb_app_url.com/,所以我保留参数,然后执行重定向。 – darko4spain

+1

我还注意到,这个(Facebook重定向到画布URL)只发生在我转换为iFrame的旧FBML应用程序中。所有直接创建到iFrame的新应用程序都正常工作(重定向将发送到www.app.myapp.com) – darko4spain

+0

您可以使用javascript或php来捕获参数,并且您将无法重定向到任何域但你自己。甚至没有Facebook。 –