Ссылки на приложение Facebook iFrame отправляются за пределы - PullRequest
3 голосов
/ 23 октября 2009

какие-нибудь эксперты FB здесь? Прочитав около 15 веток на форумах FB, я не знаю, куда идти дальше = (

У нас есть приложение iFrame FB: http://apps.facebook.com/myapp

все ссылки, используемые в приложении, выглядят так: href = "http://www.mysite.com/index.php?parm=value ..."

теперь, когда я нажимаю на любую ссылку, у меня нет Facebook и я захожу на наш сервер.

Не знаю, как это решить! Использование ссылок с сервером Facebook не вариант.

Спасибо, ребята, за некоторые советы!

Ответы [ 3 ]

2 голосов
/ 14 декабря 2009

Это связано с тем, что Facebook теряет все переменные аутентификации и не может определить, что параллельные запросы принадлежат одному и тому же сеансу, что приводит к "разрыву" iframe и появлению на страницах вашего собственного сервера, а не в Facebook .

Каждый раз, когда страница обслуживается через Facebook, запрос, полученный на вашем сервере, будет включать в себя несколько переменных GET, отправленных Facebook, эти переменные в совокупности известны как «подпись аутентификации Facebook», которая доказывает вашему серверу, что запрос действительно является действителен от Facebook; аналогичным образом, когда ваш сервер отправляет ответ, включение этих переменных в Facebook (посредством комбинации session_key, api_key и sig digest) подтверждает, что ваш сервер является приложением, которое, как он утверждает, является.

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

function fb_sig_urlQueryString() {
  $query = '';
  foreach ($_GET as $k => $v) {
    if (strpos($k, 'fb_sig') === 0) {
      if ($i++ > 1) $query .= '&';
      $query .= $k.'='.$v;
    }
  }
  return $query;
}
0 голосов
/ 03 ноября 2009

У меня была эта проблема. После добавления всех параметров строки запроса FB из исходного IFrame к каждому URL в моих ссылках они начали открываться в правильных окнах.

См. Здесь пример http://www.keywordintellect.com/facebook-development/facebook-iframe-authentication-across-pages-ajax-requests/

0 голосов
/ 23 октября 2009

Вы имеете в виду переход по ссылке в iframe на ваш сайт intead? Если вы это сделаете, вы можете попробовать установить для атрибута target целевого объекта html-привязки значение «_self», которое должно открыть ссылку в iFrame.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...