我使用php-graph-sdk v.5.5来获取在网络上注册的用户facebook的信息。问题是,使用像
这样的方法无法知道令牌是否有效FacebookAuthenticationAccessToken-> getExpiresAt()
等等。即使令牌有效,这些方法也始终返回空值。我想在调用主FacebookFacebook类的 - > get()方法之前检查令牌有效性。有没有办法做什么?
答案 0 :(得分:0)
解决!这不是必须调用的getExpiresAt()方法。这只是一个getter,它获取您在
的构造函数中发布的相同信息$accessToken = new \Facebook\Authentication\AccessToken($this->accessToken, $expirationDate);
您必须将var $ expirationDate设置为有效的时间戳,这直接是getExpiresAt()返回的值,因此无意使用来检查访问令牌验证。 要获取访问令牌的正确到期日期,您必须使用请求执行远程调用,如下所示:
try {
$response = $this->fb->get('/debug_token?input_token=' . $this->accessToken);
}
catch(\Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
$this->lastError = 'FaReEx: ' . $e->getMessage();
return false;
}
catch(\Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
$this->lastError = 'FaSDKEx: ' . $e->getMessage();
return false;
}
$graphObject = $response->getGraphObject();
return $graphObject->getProperty('expires_at'); // This is a DateTime php object