如何使用php-graph-sdk获取正确的信息

时间:2017-06-27 15:07:06

标签: php facebook

我使用php-graph-sdk v.5.5来获取在网络上注册的用户facebook的信息。问题是,使用像

这样的方法无法知道令牌是否有效
  

FacebookAuthenticationAccessToken-> getExpiresAt()

等等。即使令牌有效,这些方法也始终返回空值。我想在调用主FacebookFacebook类的 - > get()方法之前检查令牌有效性。有没有办法做什么?

1 个答案:

答案 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