2010-11-10 5 views
2

У меня проблемы с перенаправлением пользователя после авторизации обратно на вкладку приложения на странице facebook. Я всегда оказываюсь на отдельной странице холста приложений.Facebook iframe приложение после авторизации перенаправление на вкладку 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; 
    } 
} 
+0

Какой класс _Facebook_ вы используете? почему вы идете с перенаправлением JS, когда PHP может это сделать? http://www.php.net/manual/en/function.header.php – Shikiryu

+0

Я использую PHP-SDK. Переадресация JS существует, потому что это все в Iframe на странице Facebook. – vlgalik

ответ

3

Ничего, я сделал авторизацию с помощью Ajax на вкладке «Страница». Этот метод также описан в вопросе «Facebook fan page tab and user id.»:

<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> 
+0

Что означает $ fbconfig ['baseUrl'] в вашем примере? – jayarjo

+1

Он содержит URL-адрес приложения на моем сервере (холст), например. Http: //example.tld/facebook/myapp/ – vlgalik

Смежные вопросы