2012-01-28 50 views
6

我正在開發Facebook應用程序。我有一個服務器端OAuth流程,可以讓我無需點擊任何按鈕就可以對用戶進行身份驗證。因此,我只要檢索其他信息並使用服務器端之前的那些信息生成頁面,就可以檢索到他的accessToken。設置JavaScript API accessToken

在我的應用程序中,我現在需要使用Javascript API,它可以在技術上共享Oauth相同的令牌。

是否有可能使用給定的Oauth標記實例化FB javascript對象?

我知道有可能在客戶端執行Oauth進程的相反意義,並通過cookie與服務器端共享Oauth密鑰,但這在我看來有兩個很多缺點:首先,它意味着有這個「登錄」按鈕,這對我來說並不是一個好的Facebook應用用戶體驗。 _另外,如果我的應用程序由兩個不同的頁面組成,我不明白這個Oauth過程應該如何運作。從一個頁面到另一個頁面完全重新加載JavaScript。這個Oauth進程(包括彈出窗口等)是否會在每個頁面上重新加載?

感謝您的幫助!

回答

9

我有一個類似的問題一次,Facebook有叫FB.getLoginStatus舊的方法,你可以用它來檢查,如果用戶沒有給出一個彈出的權限 -

FB.init({appId: 'XXXXXXXXXXXXXX', xfbml: true, cookie: true, oauth: true}); 
FB.getLoginStatus(function(response) { 

    if (response.authResponse) { 
    token = response.authResponse.accessToken; 
    FB.api('/me', function(response) { 
     console.log(response); 
     // do something here they are logged in and have given you perms 
    }); 
    } else { 
    // no user session available, someone you dont know 
    } 
}); 

希望幫助!

+0

它工作得很好!僅供參考,似乎我們不需要將令牌設置爲全局變量。多謝你的幫助! – 2012-01-28 22:14:14

+0

真棒!很高興我能指出你朝着正確的方向。 :) – 2012-01-28 22:18:26

+0

謝謝!有同樣的問題,這在幾秒鐘內解決了!你爲我節省了幾小時的工作。 – 2012-12-14 10:34:52