2012-03-07 168 views
3

我正在嘗試將Facebook登錄按鈕併入我的網站主頁。我已經將它與一個應用程序連接起來,所以我有應用程序ID和祕密,但我無法弄清楚如何檢查用戶是否已經註冊到我的網站,所以在我的數據庫中,以便預覽他的用戶配置文件。我已經使用從Facebook的javaScript sdk,但當我按Facebook的登錄按鈕,授權後,沒有任何反應,我的網站的主頁再次顯示。有誰知道如何從javascript sdk獲取用戶的電子郵件?我正在爲我的頁面使用Java servlet。我使用了facebook文檔中的代碼。使用Facebook登錄登錄我的網站

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '8568345835', // App ID 
     channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    // Additional initialization code here 
    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 
</script> 

<div class="fb-login-button" data-scope="email"> 

回答

1

OAuth的重定向和授權後,一旦你頁面再次顯示,嘗試傾銷會話(東西會像的print_r($ _ SESSION)在PHP)。它應該包含從facebook獲得的用戶數據。

+0

謝謝你的回答。我搜索了通過Facebook文檔,但我仍然困惑的JavaScript,我應該包括哪些方法....關於重定向,我必須把重新鏈接的地方?對不起,如果這些聽起來很愚蠢的問題,但我完全是新的這個... – 2012-03-07 18:50:08

4

https://developers.facebook.com/docs/authentication/

客戶端流程

客戶端側的流也使用的OAuth對話框用於用戶認證 和應用程式授權。唯一的區別是,你 必須與代幣的值指定response_type參數:

https://www.facebook.com/dialog/oauth? 
client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&response_type=token 

作爲與服務器側流動,也可以請求使用範圍參數其他權限:

https://www.facebook.com/dialog/oauth? 
client_id=YOUR_APP_ID&redirect_uri=YOUR_URL&scope=email,read_stream& 
response_type=token 

這可能是可能的,但這不是最佳做法。我建議引入一些服務器端腳本(即PHP),但如果您僅使用Facebook Javascript SDK來獲取某些用戶數據,則此方法可能會有用。工作流程就是這樣。

  1. 用戶點擊Facebook連接按鈕重定向到:

    https://www.facebook.com/dialog/oauth? CLIENT_ID = YOUR_APP_ID & REDIRECT_URI = YOUR_URL & RESPONSE_TYPE =令牌

  2. Facebook的檢查YOUR_APP_ID和網址,並進行認證

  3. 重定向到曬您的網址。

http://YOUR_URL#access_token=166942940015970%7C2.sa0&expires_in=64090 

...在URL訪問令牌。

稍後,您將從URL中提取令牌並使用它通過AJAX請求執行FQL(Facebook查詢語言)並獲取用戶數據。

描述在這裏:https://developers.facebook.com/docs/reference/fql/