Перенаправить обратно на вкладку страницы facebook после аутентификации?

я использую drupal для facebook для моего приложения на вкладке страницы, и у меня есть определенная проблема с ним -

после аутентификации пользователь перенаправляется через пользовательский модуль с кодом ниже -

<?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 после обновления страницы вместо отображения вкладки - "

К сожалению, ваш запрос не может быть обработан. Пожалуйста, попробуйте еще раз"

как я могу изменить функцию, чтобы окно обновлялось после нажатия кнопки подключения? может кто-нибудь, пожалуйста, пролить свет на правильный подход к этому? большое спасибо всем.


person BLV    schedule 19.11.2012    source источник
comment
Расплывчатые разговоры о «получении ошибок» без упоминания фактической ошибки не дают хорошего описания проблемы.   -  person CBroe    schedule 19.11.2012
comment
facebook не дал мне никаких спецификаций... он просто говорит - Извините, ваш запрос не может быть обработан. Пожалуйста, попробуйте еще раз   -  person BLV    schedule 20.11.2012
comment
я отредактировал вопрос, спасибо за внимание   -  person BLV    schedule 20.11.2012
comment
не могли бы вы помочь мне понять, как изменить fb.js? Я понял, что в этом и есть разгадка...   -  person BLV    schedule 23.11.2012


Ответы (1)


в конце концов решение было довольно простым, вроде хака... по какой-то причине ничего не работало, когда я пытался перенаправить через fb.js, а facebook продолжал выдавать ту же ошибку. Итак, осталось только "переопределить" fb.js.redirect и использовать -

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

для всех будущих гуглов...

person BLV    schedule 24.11.2012