Facebook PHP SDK v4:AccessToken-> getExpiresAt()没有返回正确的时间

时间:2015-08-12 07:28:49

标签: php facebook facebook-php-sdk

我使用以下代码获取访问令牌的到期时间:

use Facebook\Entities\AccessToken;
$token_obj = new AccessToken($token);
$expires_at = $token_obj->getExpiresAt();
echo 'Expires At: ' .$expires_at . PHP_EOL;

$info = $token_obj->getInfo();
$info = $info->asArray();
echo 'Expires At (Info): ' . $info['expires_at'] . PHP_EOL;

输出:

Expires At: 0
Expires At (Info): 1438214400 // which is 2015-07-30 08:00:00

为什么getExpiresAt()会返回错误的结果?

P.S。

  • 因为getInfo()会导致一些时间加载,我试图避免它
  • 使用Facebook PHP SDK v4

1 个答案:

答案 0 :(得分:1)

如果您在获取访问令牌时未保存到期时间戳值,则必须致电getInfo()以获取该值。

当您手动创建访问令牌实例时,我猜您在数据库中拥有该值。然后,解决方案是在用户授予您的应用时将expires_at值保存在新字段中,并使用新的访问令牌返回。