Si pruebas aqui:
https://www.hurl.it/
Y pones la url del token, y client_id, client_secret, y code... te devuelve respuesta correctamente (en mi caso, diciendo que el code es erroneo).
Así pues, parece más un problema en la API que utilizas... ¿puedes añadir que te pase los headers de curl?
Edit:
En la clase del Api:
Código PHP:
Ver originalprotected function request
($url, $parameters = array(), $request = false) {
$this->lastRequest = $url;
$this->lastRequestData = $parameters;
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_REFERER => $url,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HEADER => true,
);
Añadele ese header, y en parseResponse haz un echo '<pre>'.$response.'</pre>'; exit();