Facebook SDK - 用户登录时获取访问令牌

时间:2014-06-06 00:56:08

标签: php facebook facebook-graph-api

我正在使用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');

...为了保存到用户表?

2 个答案:

答案 0 :(得分:2)

您要查找的方法是Facebook\Session类。

因此,您可以使用$session->getToken()获取当前访问令牌,然后将其存储在您喜欢的位置。

请注意,虽然它们有时间限制,但是当您再次使用它时,您应该调用validate函数来检查它是否仍然有效。像

这样的东西
 $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 />";
}

答案 1 :(得分:1)

这是FacebookSession对象的第一类方法:

$session->getToken();