2012-05-12 6 views
0

У меня есть этот простой код:Бесконечный цикл при Facebook авторизации

// index.php 
require_once("/fb/facebook.php"); 
require_once("/config/config.php"); 

$facebook = new Facebook(array(
    'appId' => $config['appId'], 
    'secret' => $config['secret'], 
    'cookie' => true 
)); 

$user = $facebook->getUser(); 

if ($user === 0) {  

    $loginUrl = $facebook->getLoginUrl(array(
     'redirect_uri' => 'https://www.example.com/join.php'  
    )); 

    echo("<script> top.location.href='" . $loginUrl . "'</script>");  
    exit; 

} 
else {  
    var_dump($facebook->api("/me"));  
} 

и код join.php является:

//join.php 
require_once("/fb/facebook.php"); 
require_once("/config/config.php"); 

$facebook = new Facebook(array(
    'appId' => $config['appId'], 
    'secret' => $config['secret'], 
    'cookie' => true 
)); 

if (isset($_REQUEST['error'])) {  
    echo("<script>top.location.href='". $config['errors']['auth'] . "'</script>"); 
    exit; 
} 

echo("<script>top.location.href='". $config['url'] . "'</script>"); 

проблема заключается в том, что, когда я иду: http://apps.facebook.com/myappsample (и я m НЕ зашел в систему на facebook) приложение показывает диалог auth (правильно), но после этого шага выполняется бесконечный цикл от index.php до join.php.

Как вы можете видеть, когда я проверяю, есть ли ошибки в join.php, я делаю перенаправление на index.php (домашняя страница приложения), но в index.php я все еще получаю $user === 0, поэтому он перенаправляет другой время для join.php .... и т. д. и т. д. (бесконечный цикл).

Как я могу исправить эту проблему?

спасибо!

EDIT: Я использую join.php как обратного вызова (redirect_uri) для страницы входа. Цель этой страницы - сохранить внутри базы данных информацию о пользователе, поэтому join.php сделает это, а затем перенаправит index.php, чтобы пользователь мог использовать приложение. Неправильно?

+0

Почему вы хотите, чтобы пользователь перешел на join.php? fb возьмет неавторизованного пользователя на страницу входа, а затем перенаправит обратно в ваше приложение, так что все должно быть хорошо, не так ли? – Dhiraj

+0

Какова цель join.php? что такое '$ config ['url]' и '$ config [' errors '] [' auth ']? Кажется, он должен перенаправляться, если есть успех. –

+0

@DhirajBodicherla смотрите EDIT на вопрос – Dail

ответ

0

Для фактической обработки данных обратного вызова вам необходимо позвонить $facebook->getUser(), чтобы найти токен доступа в join.php.

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