我使用以下代码获取访问令牌的到期时间:
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()
会导致一些时间加载,我试图避免它答案 0 :(得分:1)
如果您在获取访问令牌时未保存到期时间戳值,则必须致电getInfo()
以获取该值。
当您手动创建访问令牌实例时,我猜您在数据库中拥有该值。然后,解决方案是在用户授予您的应用时将expires_at
值保存在新字段中,并使用新的访问令牌返回。