0

我在我的页面标签应用程序中使用 facebook 的 drupal,并且有一定的问题 -

身份验证后,用户将通过自定义模块重定向,代码如下 -

<?php
function fb_example_fb($op, $data, &$return) {
  $fb_app = isset($data['fb_app']) ? $data['fb_app'] : NULL;
  $fb = isset($data['fb']) ? $data['fb'] : NULL;
  if ($op == FB_OP_AJAX_EVENT) {

    if ($data['event_type'] == 'session_change') {
      if ($fbu = fb_facebook_user()) {
        $url = url('http://apps.facebook.com/appname',
                   array('absolute' => TRUE, 'fb_canvas' => fb_is_canvas()));
        $return[] = 'FB_JS.reload("'. $url .'");';
      }
    }
  }
}
?>

当我希望用户被重定向到画布应用程序时,一切都很好。问题是,我希望用户在身份验证后被“重定向”回页面选项卡,因此我需要刷新 iframe/主要内容 div,以便用户单击“登录”按钮并进行身份验证,页面选项卡将使用自定义驱动内容进行更新。我的目标是在不让他们离开标签的情况下将其提供给用户。

当我尝试将上面代码中的 $url 路径设置为 - https://www.facebook.com/appname/app_4557794143(页面选项卡的路径)时,我在页面刷新后从 facebook 收到以下错误,而不是显示标签 - “

对不起,我们无法处理你的请求。请再试一次”

如何更改功能以便在按下连接按钮后刷新窗口?有人可以说明以正确的方式处理这个问题吗? 非常感谢大家。

4

1 回答 1

1

最后,解决方案非常简单,有点像黑客......由于某种原因,当我尝试通过 fb.js 重定向时没有任何效果,而 facebook 一直给出同样的错误。所以,剩下要做的就是“覆盖” fb.js.redirect 并使用 -

  if ($fbu = fb_facebook_user()) {
    $return[] = 'top.location.href="https://www.facebook.com/exampleapp/app_707794143";';
  }

对于所有未来的谷歌员工......

于 2012-11-24T19:47:23.710 回答