【问题标题】:Facebook application - server not respondingFacebook 应用程序 - 服务器没有响应
【发布时间】:2011-11-30 23:18:52
【问题描述】:

在 FBML 问题之后,我切换到 iFrame 应用程序。现在一切顺利,除了两件事:

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/'
    )
);  

登录进入无限循环。

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

谢谢

【问题讨论】:

    标签: facebook iframe login


    【解决方案1】:

    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 会将您重定向回我的画布,如果您不在画布中。

    【讨论】:

    • 嗨!感谢您的回答。您的解决方案并不完全是我所需要的,您为我指明了正确的方向。问题是 mu 用户通过 myapp.com?id=123456&lang=en 之类的链接进入应用程序。所以不是我总是将它们重定向到我的主 URL Y 将丢失所有参数。所以,我现在正在考虑尝试替换字符串,只需将 www.server_url.com/ 更改为 www.fb_app_url.com/ 以便我保留参数然后进行重定向。
    • 我还注意到,这种情况(facebook 重定向到画布 URL)仅发生在我转换为 iFrame 的旧 FBML 应用程序中。直接创建到 iFrame 的所有新应用程序都运行良好(重定向到 www.app.myapp.com)
    • 您可以使用javascript或php来捕获参数,并且您将无法重定向到您自己的域以外的任何域。甚至 Facebook 也不行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 2016-11-05
    • 1970-01-01
    • 2014-06-04
    • 2011-08-22
    • 2017-01-09
    • 2017-01-04
    相关资源
    最近更新 更多