2012-05-24 47 views
1

我試圖讓我的朋友的關係在這裏,但我給所有正確的權限,它仍然說我,未定義..它不提取朋友的關係狀態,也生日..這裏是我的代碼:Facebook的api返回undefine的關係狀態

function loadFriendsrel() 
{ 
    //get array of friends 
    FB.api('/me/friends?fields=name,first_name,gender,picture,relationship_status,birthday', function(response) { 
     console.log(response); 
     var divContainer=$('.facebook-friends'); 
         var testdiv2 = document.getElementById("test2"); 

for(var i=0; i<response.data.length; i++){ 
    if(response.data[i].gender == 'female'){ 
     testdiv2.innerHTML += response.data[i].first_name + '<br/>' + response.data[i].relationship_status + '<br/>' + ' ' + '<img src="' + response.data[i].picture + '"/>' + '<br /> <br/>'; 
    } 
} 
    }); 
} 

回答

1

即使你得到所有的權限,你不會得到誰已經通過他們的隱私設置攔截他們的用戶relationship_status

隱私設置比facebook api的優先級高。

因此,在循環,有些朋友可能已經擋住了他們的relationship_status,所以它給undefined,打破你的循環。

你的循環更改爲這樣的事情,

for(var i=0; i<response.data.length; i++){ 
    if(response.data[i].gender == 'female'){ 
    var relStatus = 'Relationship status not provided'; 

    // If relationship_status exists, only then take its value 
    if('relationship_status' in response.data[i]){ 
     relStatus = response.data[i].relationship_status; 
    } 
    testdiv2.innerHTML += response.data[i].first_name + '<br/>' + relStatus + '<br/>' + ' ' + '<img src="' + response.data[i].picture + '"/>' + '<br /> <br/>'; 
} 
} 

您可以採用相同的邏輯在其他領域也。

+0

嗨jASHWANT :)感謝回答..我做了什麼,你告訴我,但我得到這個消息對我所有的朋友... 關係狀態沒有提供 –

+0

嘿:)我看到你來自印度的時候,有這裏有很多印度人回答問題,印度人真的很聰明:) 我希望我能有一天來印度,對不起,也許我聽起來很奇怪:p –

+0

如果你真的想感謝我,請將我的問題標記爲回答:) 你總是歡迎在印度。它是一個必須訪問每個人:) – Jashwant