如何使用Facebook PHP SDK获取access_token的“expires”参数值?

时间:2012-02-25 20:34:03

标签: facebook facebook-php-sdk facebook-access-token

我的Facebook PHP SDK应用程序登录到Facebook并收到access_token。

如何使用PHP SDK稍后获取“expires”参数的值?

2 个答案:

答案 0 :(得分:2)

Facebook API在其响应中提供了expires参数以及access_token,如下所述:https://developers.facebook.com/docs/authentication/

  

除了访问令牌(access_token参数)之外,响应还包含令牌到期前的秒数(expires参数)。令牌过期后,您需要重新运行上述步骤以生成新代码和access_token,但如果用户已经授权您的应用,则不会再次提示他们这样做。如果您的应用需要具有无限到期时间的访问令牌(可能是在用户未使用您的应用后代表用户执行操作),您可以请求offline_access权限。

enter image description here

如果您正在尝试获取访问令牌的剩余时间,我认为Facebook甚至没有通过API的方法来执行此操作。只需请求一个新的访问令牌,或者请求一个“offline_access”令牌也更容易,该令牌也记录在上面的参考文献中。

答案 1 :(得分:2)

要使用Facebook PHP SDK检索“expires”参数,您需要在SDK中提供的base_facebook.php脚本中添加几行:

//base_facebook.php
//At Line 728

if (!isset($response_params['access_token'])) {
  return false;
}

//Add these two lines here

$_SESSION['token_created_time'] = time();
$_SESSION['token_expires'] = $response_params['expires'];

return $response_params['access_token'];

与您的应用程序连接后,您可以使用以下内容访问“expires”参数和令牌到期前的剩余时间:

//Your "expires" parameter :
echo $_SESSION['token_expires'];

//The remaining time before your token expires :
echo $_SESSION['token_expires'] + $_SESSION['token_created_time'] - time();

我希望它会有所帮助。