public function RefreshAccessToken(array $credentials)
{
if (empty($credentials['refresh_token'])) {
throw new OAuth2Exception('Offline access (refresh_token) required.');
}
if (empty($credentials['client_id'])) {
throw new OAuth2Exception('client_id required.');
}
if (empty($credentials['client_secret'])) {
throw new OAuth2Exception('client_secret required.');
}
$params = array('refresh_token' => $credentials['refresh_token'], 'client_id' => $credentials['client_id'], 'client_secret' => $credentials['client_secret'], 'grant_type' => 'refresh_token');
$endpoint = $this->GetAccessEndpoint();
$response = $this->MakeRequest($endpoint, $params);
return array_merge($credentials, $response, array('timestamp' => time()));
}