2014-03-02 41 views
0

每個頁面負載上的Facebook API訪問令牌更改是否正確?每個頁面負載上的Facebook訪問令牌更改

我以爲一旦獲得了一個令牌,它就會一直保持不變,直到到期。

我正在使用Facebook SDK for Javascript。

Facebook表示,使用此SDK,不需要手動管理訪問令牌。 SDK只是做它。

但是每個頁面上的標記更改是否正確?

我的代碼是這樣的:

<div id="fb-root"></div> 
    <script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : 'xxxxxxxx', 
     status  : true, 
     xfbml  : false, 
     cookie  : true 
    }); 
    }; 

    (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/all.js"; 
    fjs.parentNode.insertBefore(js, fjs); 
    }(document, 'script', 'facebook-jssdk')); 



function check() { 
     FB.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 
     // the user is logged in and has authenticated your 
     // app, and response.authResponse supplies 
     // the user's ID, a valid access token, a signed 
     // request, and the time the access token 
     // and signed request each expire 
     console.log(response); 
     var uid = response.authResponse.userID; 
     var accessToken = response.authResponse.accessToken; 
     } else if (response.status === 'not_authorized') { 
     // the user is logged in to Facebook, 
     // but has not authenticated your app 
     console.log(response); 
     } else { 
     // the user isn't logged in to Facebook. 
     console.log(response); 
     } 

    }); 



} 


</script> 

    <span onClick="check()">test</span> 

回答

1

我剛剛測試過這一點,你說得對,令牌隨着每個頁面的刷新而改變。儘管如此,當我使用其中一個SDK(JavaScript,PHP,...)時,您根本不必考慮訪問令牌。 即使你需要它們(比如管理頁面),你也可以使用最後一個。

「舊」令牌仍然有效,順便說一句,他們不會失效。但是他們無論如何都會在2個小時後停止工作。

還有第二個參數可以設置爲「true」:https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/(請參閱「往返於Facebook的服務器」) - 可能已經解釋了新的令牌,但是您也沒有使用它。

+0

感謝您的測試。我發現如果在init()上將參數'status'設置爲false,它不會改變。這樣或那樣,我同意我們可能不需要擔心。 – Eduscho

0

Facebook最近改變了其清爽的訪問令牌的過程。

嘗試使用這個,如果它在你的情況:

https://graph.facebook.com/oauth/access_token? 
client_id=APP_ID& 
client_secret=APP_SECRET& 
grant_type=fb_exchange_token& 
fb_exchange_token=EXISTING_ACCESS_TOKEN 

編輯:

這將可能會幫助你。 Link

+0

延長訪問令牌就像你發佈僅僅是一個好主意,如果你真的需要一個標誌,其有效期爲2個多小時。儘管不是最近的變化。 – luschn

相關問題