2012-02-10 134 views
0

我正在使用FB.login在我的網站上登錄到Facebook,它工作正常。如何使用OAuth 2.0使用fb_exchange_token來增加訪問令牌到期時間

我可以輕鬆地獲得response.AuthResponse.accessToken的accessToken。

會話有效期爲2小時。我從我讀到的fb_exchange_token中瞭解到,您可以將其延長到30天或60天(我不確定哪一個,我看到了兩個數字)。

問題1:這是可以在Javascript中使用嗎?我是否需要提供應用程序祕密(我不想在Javascript中執行此操作,因爲每個人都可以訪問它)?有人可以提供一個代碼片段來做到這一點?

我的計劃是使用ajax將新獲取的擴展令牌發送到PHP,然後將其用於我正在執行的PHP FQL調用。目前我做的:

$facebook = new Facebook(array('appId' => $app_id,'secret' => $app_secret)); 

$fql = 'SELECT first_name, last_name, movies, tv, FROM user WHERE uid =' . $uid; 

$param = array('method' => 'fql.query','query' => $fql,'callback' => ''); 

$fqlResult = $facebook->api($param); 

問題2:這可能是一個新手的問​​題,但我怎麼使用阿賈克斯在上面的PHP代碼發送新的訪問令牌?目前,我沒有明確使用訪問令牌,一切正常(直到2小時過期)。

預先感謝您的幫助,

紅塔

回答

1

當你得到你所訪問令牌從Facebook回來,你應該發送回服務器,你可以再有擴展它,而不用擔心暴露您的應用程序關鍵和祕密。

在服務器上有訪問令牌後,可以使用以下方法將其添加到Facebook庫。

$facebook->setAccessToken($access_token) 

然後,您所做的任何api調用將作爲登錄用戶執行。

相關問題