2012-06-10 29 views
1

我瀏覽過網站上的很多帖子,但仍無法獲得Facebook登錄和重定向工作。當用戶通過Facebook按下網頁上的按鈕登錄時,我想自動將其重定向到另一個網頁,並通過url傳遞他們的電子郵件和密碼。不幸的是,我只能在登錄時才工作,我必須手動重新加載頁面,以便通過刷新我的網頁來使其進入重定向頁面。我想知道是否有人可以發佈代碼如何做到這一點?我嘗試了很多東西。Facebook登錄重定向PHP/Javascript不工作

<?php 

//uses the PHP SDK. Download from https://github.com/facebook/php-sdk 
require 'facebook.php'; 

define('YOUR_APP_ID', 'xxxx'); 

$facebook = new Facebook(array(
    'appId' => 'xxxx', 
    'secret' => 'xxxx', 
)); 

?> 

<div id="fb-root"></div> 
<div id="user-info"></div> 
    <div class="fb-login-button" style="position:absolute;top:800px;">Login with Facebook</div> 




<script> 

    window.fbAsyncInit = function() { 
     FB.init({ appId: 'xxxx', 
      status: true, 
      cookie: true, 
      xfbml: true, 
      oauth: true}); 

    function updateButton(response) { 
    var button = document.getElementById('fb-auth'); 

    if (response.authResponse) { 
     //user is already logged in and connected 
     var userInfo = document.getElementById('user-info'); 
     FB.api('/me', function(response) { 
     userInfo.innerHTML = '<img src="https://graph.facebook.com/' 
     + response.id + '/picture">' + response.email; 
     button.innerHTML = 'Logout'; 

      }); 
     button.onclick = function() { 
     FB.logout(function(response) { 
      var userInfo = document.getElementById('user-info'); 
      userInfo.innerHTML=""; 
    }); 
     }; 






} 



    else { 
     //user is not connected to your app or logged out 
     button.innerHTML = 'Login'; 
     button.onclick = function() { 
     FB.login(function(response) { 
     if (response.authResponse) { 
      FB.api('/me', function(response) { 
      var userInfo = document.getElementById('user-info'); 
      userInfo.innerHTML = 
       '<img src="https://graph.facebook.com/' 
      + response.id + '/picture" style="margin-right:5px"/>' 
      + response.name; 


     });  
      } else { 
      //user cancelled login or did not grant authorization 
      } 
     }, {scope:'email'});  
     } 
    } 
    } 


    // run once with current status and whenever the status changes 
    FB.getLoginStatus(updateButton); 
    FB.Event.subscribe('auth.statusChange', updateButton);  
}; 

(function() { 
    var e = document.createElement('script'); e.async = true; 
    e.src = document.location.protocol 
    + '//connect.facebook.net/en_US/all.js'; 
    document.getElementById('fb-root').appendChild(e); 
}()); 





</script> 

<?php 

    $uid = $facebook->getUser(); 
    if($uid != 0) { 
     header("Location: signup.php"); 
     } 

    ?> 

回答

-1

對於facebook應用程序主要使用header('Location')不起作用。

我假設的代碼工作的其餘部分,從而將

$uid = $facebook->getUser(); 
if($uid != 0) { 
    echo("<script> top.location.href='your-login-url'</script>"); 
    return; 
} 

希望唯一需要改變這有助於

+0

感謝您的答覆,但它仍然不會自動將用戶重定向。我必須手動刷新頁面才能進入重定向頁面。你知道我怎樣才能讓它自動工作嗎? – user1446797