2014-06-06 63 views
2

我正在使用Facebook SDK讓用戶登錄到我的Web應用程序。Facebook SDK - 在用戶登錄時獲取訪問令牌

所有的標準流程都被遵循並完成。但是在檢索將被保存到TABLE USERS以供用戶記錄的訪問令牌時,我有點困惑。

現在我有圖形對象的列表,用戶登錄後:

$session = $helper->getSessionFromRedirect(); 
$request = new FacebookRequest($session, 'GET', '/me'); 
$response = $request->execute(); 
$graphObject = $response->getGraphObject(); 

現在,反正是有,我可以得到:

$graphObject->getProperty('token'); 
$graphObject->getProperty('secret'); 

...爲了節省用戶表?

+0

這個問題,下面的答案的東西沒有得到足夠的愛 – Huey

回答

2

你正在尋找的方法是在Facebook\Session類。

因此,您可以使用$session->getToken()獲取當前訪問令牌,然後將其存儲在任何你喜歡的位置。

請注意,他們有時間限制,所以當你再次使用它時,你應該調用驗證函數來檢查它是否仍然有效。像

$session = new FacebookSession($token); 
try { 
    $session->validate(); 
}catch (FacebookRequestException $ex) { 
    // Session not valid, Graph API returned an exception with the reason. 
    echo "FacebookRequestException: " . $ex->getMessage(). "<br />"; 
} catch (\Exception $ex) { 
    // Graph API returned info, but it may mismatch the current app or have expired. 
    echo "Validate Exception: " . $ex->getMessage(). "<br />"; 
} 
+0

我看到人們做'存儲在用戶表secret'。你知道它是什麼以及它被儲存的原因嗎? – user3583721

+0

你從哪裏看到的? – WizKid

+0

在stackoverflow隨機線程,但我不記得了。我認爲這是重要的。 – user3583721

1

這是FacebookSession對象上的第一類方法:

$session->getToken(); 
相關問題