-2

這是我第一次使用Facebook Graph API。我需要知道誰在使用我的應用程序的每個朋友的名字。我嘗試了很多可用的在線方法,但無法設法拉到目前爲止的好友列表。我無法做到這一點。請幫忙。 這是我到目前爲止所做的。使用Facebook Graph API無法獲取好友列表

<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 2015-02-12 07:58:10

+0

無。但它沒有顯示任何結果。 @Smoke – 2015-02-12 08:00:51

+0

我測試它,並運行在我的服務器上,我也沒有結果,但是當我的應用程序id id顯示好友列表。我更改了一些代碼,請更新 – Smoke 2015-02-12 09:23:37

回答

1

朋友只顯示了刪除舊的代碼和匹配},that's非常重要的是知道。但我的猜測是,您忘記了在登錄時要求user_friends權限。我沒有看到它的範圍。

順便說一句,你還應該使用最新的代號爲JS SDK:https://developers.facebook.com/docs/javascript/quickstart/v2.2

+0

謝謝。我意識到我沒有爲用戶朋友編寫範圍。您的評論有幫助。 @luschn – 2015-02-12 10:57:50

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')); 
相關問題