2011-02-23 191 views
4

如何使用Facebook Graph API獲取「訪問令牌」。我有應用程序ID,用戶的用戶名和密碼。只需要獲取訪問令牌,以便我可以訪問新聞Feed ......等等。Facebook獲取訪問令牌

+0

您正在使用什麼語言? – ifaour 2011-02-23 10:10:43

+0

java腳本... – SNR 2011-02-23 10:56:13

回答

18

好的,你需要在JavaScript中獲得用戶的access_token。在這裏你去:

  1. 開始閱讀JavaScript SDK documentation
  2. 喜歡的東西下面將讓你開始:

    <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 
        }); 
        // this shouldn't be called directly, but instead should be initiated with a user click event 
        FB.login(function(response) { 
         if (response.authResponse) { 
          console.log('Access Token: ' + response.authResponse.accessToken); 
         } else { 
          console.log('User cancelled login or did not fully authorize.'); 
         } 
        }); 
    
    }; 
    
    // 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> 
    
  3. 正如documentation提到:

    調用FB。登錄結果JS SDK試圖打開彈出式窗口 。因此,只有在用戶點擊 事件後才能調用此方法,否則彈出窗口將被大多數瀏覽器阻止。

  4. NEVEREVER要求用戶輸入密碼或如果它要求你把它給任何應用!如果有,請直接向Facebook報告!

  5. 這是 「JavaScript的」 而不是 「Java腳本」 :-)

+3

+1爲拼寫更正:-) – 2011-08-26 07:11:07

+2

+1提及Popup塊! – hhh 2012-06-05 23:55:42

+0

@hhh,歡迎您......我也編輯了代碼,並在FB.login上面添加了一條評論,僅供複製/粘貼代碼的人閱讀完整答案。 ;-) – ifaour 2012-06-06 07:32:53