1

ここで友達の関係を取得しようとしていますが、すべての適切な権限を与えても、未定義と表示されます..友達の関係ステータスも誕生日も抽出しません..これが私のコードです:

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/>';
    }
}
    });
}
4

1 に答える 1

1

すべての許可を得たとしてもrelationship_status、プライバシー設定によってブロックされたユーザーを取得することはできません。

プライバシー設定は、FacebookAPIよりも優先されます。

だから、あなたのループでは、何人かの友人が彼らをブロックしているかもしれない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/>';
 }   
}

他のフィールドにも同様のロジックを適用できます。

于 2012-05-24T12:52:55.993 に答える