2011-02-13 91 views

回答

1

是的,你必須使用api調用,因爲它沒有被編碼在訪問令牌或傳遞給應用程序的任何其他信息中。

如果擔心的是性能,您當然可以緩存結果。

+0

我會在哪裏緩存它?本地存儲? – ma11hew28 2011-02-14 23:02:02

+0

```window.localStorage.setItem('Facebook',JSON.stringify(response));`` – Alastair 2013-08-05 06:04:19

0

它很好的調用圖形API調用獲得User名。您也可以查詢User表以獲取用戶名。它取決於你你喜歡什麼?

1

您可以使用FB.api如下

function fqlQuery(){ 
     FB.api('/me', function(response) { 
       var query = FB.Data.query('select name,email,hometown_location, sex, pic_square from user where uid={0}', response.id); 
       query.wait(function(rows) { 
       uid = rows[0].uid; 
       document.getElementById('name').innerHTML = 
        'Your name: ' + rows[0].name + "<br />" + 
        'Your email: ' + rows[0].email + "<br />" + 
        'Your hometown_location: ' + rows[0].hometown_location + "<br />" + 
        'Your sex: ' + rows[0].sex + "<br />" + 
        'Your uid: ' + rows[0].uid + "<br />" + 
        '<img src="' + rows[0].pic_square + '" alt="" />' + "<br />"; 
       }); 
     }); 
    } 
11
FB.api('/me', function(response) { 
    $('#name').html("Welcome " + response.name); 
}); 

這就是你需要的。

0

Facebook擁有的JavaScript SDK允許您獲取名字,姓氏(不需要特別許可),教育歷史以及更多Facebook用戶個人資料。但是,要獲得「敏感」信息,用戶必須批准您的應用(如果他們還沒有),然後批准教育歷史等「敏感」信息。 http://www.virtualsecrets.com/facebook-user-data-on-webpage-form.html的頁面顯示了使用JavaScript SDK的整個過程以及如何使用網頁設置應用程序的一些信息。

2

FB JS SDK API登錄請求不再返回屬性firstname和lastname。這在一段時間之間改變了。 2.2(06/2014)和2.5(01/2015)。

背後的原因是,該登錄請求,僅返回公開可用的屬性,這是FBID。名字和姓氏不是可公開訪問的屬性,並且需要用戶授予的權限。 See here

我們用一個「猜測的解決辦法」 - 如果屬性已經超過1個字,我們把它們分成姓氏屬性,或者從名稱填入姓名。在某些情況下,它比使用權限,響應檢查,回調等方式更好/更容易。

相關問題