2014-09-29 117 views
0

我看了很久,我似乎無法找到解決方案。我正試圖實現Facebook登錄到我的網站,我有一次這樣做。Facebook登錄沒有返回

我已經實現了Facebook圖形API,我有登錄部分內置,但我不能得到任何回報它來處理它。

你可以明白我的意思的< phiride.com>(我不知道這是很糟糕的網絡禮儀張貼本網站上的URL如果很抱歉!)

我曾經給獲取代碼一個回報 - >

<script> 
FB.api('/me', function(response) { 
    console.log(JSON.stringify(response)); 
}); 
</script> 

絕對沒有什麼是打印到屏幕上,我無法找到處理信息。我確信這是一個簡單的初學者錯誤,但任何幫助將不勝感激。

回答

0

您是否通過網站生成了html和腳本?

https://developers.facebook.com/docs/plugins/login-button

+0

是我做的,我可以生成登錄空間,但我不能從它處理任何數據。 – Dhowa 2014-09-29 15:31:11

+0

所以你想能夠收集用戶的詳細信息。 [這可能是更多你正在尋找](https://developers.facebook.com/docs/reference/javascript/FB.login/v2.1#permissions)。 FB.login(函數(響應){//處理響應 },{scope:'email,user_likes'}); – new2code 2014-09-29 16:29:13

+0

好吧,這很酷,我理解這段代碼是怎麼回事,但是API似乎沒有提及的部分,以及我想要弄清楚的是如何處理這個異常以獲取數據。像是是token.data('電子郵件')什麼的?我試過console.log(email);以及各種變化只是爲了看看我是否可以打印數據,而不能。 – Dhowa 2014-09-29 21:02:09

0

這是你需要爲了使API調用的工作做的:

  • 初始化的JavaScript SDK
  • 授權用戶

初始化JavaScript的SDK

<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'your-app-id', 
     xfbml  : true, 
     version : 'v2.1' 
    }); 
    }; 

    (function(d, s, id){ 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/sdk.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 
</script> 

授權用戶

FB.login(function(response) { 
    if (response.authResponse) { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
     console.log('Your Email: ' + response.email); 
    }, {scope: 'email'}); 
    } else { 
    console.log('User cancelled login or did not fully authorize.'); 
    } 
}); 

只有調用FB.login用戶交互(上單擊),以確保它不會被瀏覽器阻塞 - 它必須被調用後FB.init了。您也可以通過在FB.init後面使用FB.getLoginStatus來檢查用戶是否已被授權。

來源:

+0

這是一個非常精心和深入的迴應,謝謝!但我在處理登錄網站時的數據時遇到問題。一旦你確定他們已經登錄,你如何處理他們的信息。任何關於如何處理他們的電子郵件,(希望MD5)密碼,名字等的建議將非常感激。 – Dhowa 2014-09-29 15:46:36

+0

當然,你無法獲得他們的密碼。您可以通過「email」範圍(請參閱文檔中的FB.login)和/ me端點獲取電子郵件。與用戶的名稱相同,它也將位於/ me端點中。 – luschn 2014-09-29 18:00:11

+0

你一直非常有幫助,但對我的問題的答案很可能比你給出的答案簡單得多。我只需要查看將請求示例和電子郵件並允許我打印或存儲的代碼。我一直試圖打電話和登錄電子郵件,但沒有出現。如果我可以看到數據打印並知道數據的位置,我可以從那裏處理數據,並使用代碼添加所需的其他範圍。再次感謝你! – Dhowa 2014-09-30 14:24:18