2012-07-13 14 views
2

我的問題是顯示登錄按鈕和(一旦用戶登錄)顯示他的個人資料圖像,名稱和「註銷」鏈接。Facebook網站API:登錄並顯示用戶圖片和名稱。主動訪問令牌錯誤

在Facebook的API文檔(這裏http://developers.facebook.com/docs/guides/web/#login),我發現這個例子:

<html> 
    <head> 
    <title>My Facebook Login Page</title> 
    </head> 
    <body> 

    <div id="fb-root"></div> 
    <script> 
     window.fbAsyncInit = function() { 
     FB.init({ 
      appId  : 'YOUR_APP_ID', // App ID 
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File 
      status  : true, // check login status 
      cookie  : true, // enable cookies to allow the server to access the session 
      xfbml  : true // parse XFBML 
     }); 
     FB.api('/me', function(user) { 
      if (user) { 
      var image = document.getElementById('image'); 
      image.src = 'http://graph.facebook.com/' + user.id + '/picture'; 
      var name = document.getElementById('name'); 
      name.innerHTML = user.name 
      } 
     }); 
     }; 
     // 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"> 
     <img id="image"/> 
     <div id="name"></div> 
    </div> 

    </body> 
</html> 

這應該做什麼,我一直在尋找。我用我的app_id和我的網站(http://localhost/index.html)替換了「MY_APP_ID」和MY_DOMAIN.COM。我還添加了一個登錄按鈕,因爲我在文檔上找到了這個按鈕(工作並允許我登錄),但沒有顯示圖像和名稱。我寫的「用戶」對象在一個控制檯,它conatins這樣的:

error: Object 
    code: 2500 
    message: "An active access token must be used to query information about the current user." 
    type: "OAuthException" 

我應該如何使用這個「主動訪問令牌」?

回答

3

爲了完成任何用戶數據檢索,每個Facebook應用程序必須首先對用戶會話進行身份驗證,以確保該應用程序具有最終用戶的權限以檢索其數據。

參考https://developers.facebook.com/docs/authentication

檢索使用JavaScript SDK的訪問令牌,你應該能夠開始尋找自己的用戶顯示名字和形象作爲一個結果。

Facebook的JS SDKhttps://github.com/facebook/facebook-js-sdk/

+0

我可以問你一個問題嗎?我打算使用客戶端身份驗證,並用'http://localhost/index.php'替換'//WWW.YOUR_DOMAIN.COM/channel.html',這是我的主頁。這是對的嗎? – Matt07 2012-07-13 16:58:17

+0

好的發現它!有用!謝謝 – Matt07 2012-07-13 17:28:57