如何扩展访问令牌的有效性?

时间:2012-04-20 13:21:44

标签: facebook

我们知道现在不推荐使用offline_access,有人可以告诉我,如果没有这个权限,我们怎样才能获得长期访问权限?

1 个答案:

答案 0 :(得分:1)

您可以通过将以下函数添加到base_facebook.php来扩展访问令牌。

//用于扩展标记值的扩展函数。

public function getExtendedAccessToken() {

try {

    $access_token_response =
        $this->_oauthRequest(
            $this->getUrl('graph', '/oauth/access_token'),
            $params = array(    'client_id' => $this->getAppId(),
                                'client_secret' => $this->getApiSecret(),
                                'grant_type'=>'fb_exchange_token',
                                'fb_exchange_token'=>$this->getAccessToken(),
                          ));

} catch (FacebookApiException $e) {

  return false;
}

if (empty($access_token_response)) {
  return false;
}

$response_params = array();
parse_str($access_token_response, $response_params);
if (!isset($response_params['access_token'])) {
  return false;
}

return $response_params['access_token'];

}