Приложение Facebook iframe после авторизации перенаправляет на вкладку страницы Facebook - PullRequest
2 голосов
/ 10 ноября 2010

У меня проблемы с перенаправлением пользователя после авторизации обратно на вкладку приложения на странице facebook. Я всегда оказываюсь на отдельной странице приложения.

Edit: Это должно было быть приложение на вкладке на странице Fb. Я хотел сделать авторизация, а затем перенаправить пользователь вернулся на вкладку страницы. Но когда вы делаете эта вкладка выглядит так же, как и раньше и это кажется пользователю как ошибка потому что он пришел с разрешения и приложение во вкладке выглядит так же. У него есть щелкнуть по нему, чтобы получить какой-то ответ или сообщение.

Есть ли какой-нибудь пример, который можно скачать, или какое-то пошаговое руководство. Вот мой код:

// Create our Application instance.
$facebook = new Facebook(array(
  'appId'  => $fbconfig['appid'],
  'secret' => $fbconfig['secret'],
  'cookie' => true,
));

//Facebook Authentication part
$session = $facebook->getSession();
$loginUrl = $facebook->getLoginUrl(
        array(
        'canvas'    => 1,
        'fbconnect' => 0,
        )
);

$uid = null; //facebook user id
$fbme = null;

if (!$session) {
    echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
    exit;
}
else {
    try {
        $uid  = $facebook->getUser();
        $fbme = $facebook->api('/me?fields[]=id&fields[]=last_name&fields[]=first_name');
    }
    catch (FacebookApiException $e) {
        echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
        exit;
    }
}

1 Ответ

3 голосов
/ 10 января 2011

Не берите в голову, я сделал авторизацию, используя Ajax на вкладке Page.Этот метод также описан в вопросе " Вкладка фан-страницы Facebook и идентификатор пользователя. ":

<div id="intro">
    <a onclick="load_iframe();"><img src="<?php echo $fbconfig['baseUrl'], 'intro.jpg' ?>" /></a>
</div>
<div id="fb-root"></div>

<script type="text/javascript" charset="utf-8">

    function load_iframe()
    {
        var intro = document.getElementById('intro');
        var root = document.getElementById('fb-root');

        var ajax = new Ajax();
        ajax.responseType = Ajax.FBML;
        ajax.onerror = function(error)
        {
            new Dialog().showMessage("Alert", "Required authorization.","Close");
        };

        ajax.ondone = function(data)
        {
            intro.setStyle('display', 'none');
            root.setInnerFBML(data);
        }
        ajax.requireLogin = true;
        ajax.post("<?php echo $fbconfig['baseUrl'] ?>iframe.php");
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...