У меня проблемы с перенаправлением пользователя после авторизации обратно на вкладку приложения на странице facebook. Я всегда оказываюсь на отдельной странице холста приложений.
Изменить: он должен был быть приложением на вкладке на странице 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; } }
Неважно, что я сделал авторизацию с помощью Ajax на вкладке «Страница». Этот метод также описывается под вопросом « вкладка страницы вентилятора 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>