-2

Это первый раз, когда я использую API-интерфейс Facebook Graph. Мне нужно получить имя каждого друга, использующего мое приложение. Я пытаюсь найти множество методов, доступных онлайн, но до сих пор не удалось найти список друзей. Я не могу этого сделать. Пожалуйста помоги. Вот что я сделал до сих пор.Не удается получить список друзей, используя API-интерфейс Facebook

<html> 
<head> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script> 
</head> 
<body> 
<div id="fb-root"></div> 

<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'xxxxxxxxxxxxxxxxxxxx', // Set YOUR APP ID 
     channelUrl : 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', // Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    FB.Event.subscribe('auth.authResponseChange', function(response) 
    { 
    if (response.status === 'connected') 
    { 
     document.getElementById("message").innerHTML += "<br>Connected to Facebook"; 
     //SUCCESS 

    }  
    else if (response.status === 'not_authorized') 
    { 
     document.getElementById("message").innerHTML += "<br>Failed to Connect"; 

     //FAILED 
    } else 
    { 
     document.getElementById("message").innerHTML += "<br>Logged Out"; 

     //UNKNOWN ERROR 
    } 
    }); 

    }; 

    function Login() 
    { 

     FB.login(function(response) { 
      if (response.authResponse) 
      { 
       getUserInfo(); 
      } else 
      { 
      console.log('User cancelled login or did not fully authorize.'); 
      } 
     },{scope: 'email,user_photos,user_videos'}); 

    } 


    function getUserInfo() { 
     FB.api('/me', function(response) { 

     var str="<b>Name</b> : "+response.name+"<br>"; 
      str +="<b>Link: </b>"+response.link+"<br>"; 
      str +="<b>Username:</b> "+response.username+"<br>"; 
      str +="<b>id: </b>"+response.id+"<br>"; 
      str +="<b>Email:</b> "+response.email+"<br>"; 
      str +="<input type='button' value='Get Photo' onclick='getPhoto();'/>"; 
      str +="<input type='button' value='Logout' onclick='Logout();'/>"; 
      document.getElementById("status").innerHTML=str; 

    }); 
    } 

function getFriends() { 
    FB.api('/me/friends', function(response) { 
     if(response.data) { 
      $.each(response.data,function(index,friend) { 
       alert(friend.name + ' has id:' + friend.id); 
      }); 
     } else { 
      alert("Error!"); 
     } 
    }); 
} 
    function getPhoto() 
    { 
     FB.api('/me/picture?type=normal', function(response) { 

      var str="<br/><b>Pic</b> : <img src='"+response.data.url+"'/>"; 
      document.getElementById("status").innerHTML+=str; 

    }); 

    } 

    function Logout() 
    { 
     FB.logout(function(){document.location.reload();}); 
    } 

    // 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 align="center"> 
<h2>Facebook OAuth Javascript Demo</h2> 

<div id="status"> 
Click on Below Image to start the demo: <br/> 
<img src="http://hayageek.com/examples/oauth/facebook/oauth-javascript/LoginWithFacebook.png" style="cursor:pointer;" onclick="Login()"/> 
</div> 

<br/><br/><br/><br/><br/> 

<div id="message"> 
Logs:<br/> 
</div> 

</div> 
</body> 
</html> 
+0

что ошибка вы получили? – Smoke

+0

Нет. Но это не показывает никаких результатов. @Smoke –

+0

Я тестирую его и запускаю на своем сервере, я также не получаю никакого результата, но когда я подключаю приложение, он показывает список друзей. я меняю какой-то код, пожалуйста, обновите – Smoke

ответ

1

Друзья отображаются только если они разрешенными ваше приложение тоже that's очень важно знать. Но я предполагаю, что вы забыли просить разрешение user_friends при входе в систему. Я не вижу его в сфере действия.

Btw, вы должны также использовать последний код для JS SDK: https://developers.facebook.com/docs/javascript/quickstart/v2.2

+0

Спасибо. Я понял, что я не писал возможности для друзей пользователей. Ваш комментарий был полезен. @luschn –

0

заменить этот код с предыдущим кодом и удалить старый код и матч} из кода

window.fbAsyncInit = function() { 
FB.init({ 
     appId  : 'XXXXXXXXXXXXX', 
     xfbml  : true, 
     version : 'v2.2' 
    }); 
    }; 
    (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')); 
Смежные вопросы