intestazione di curl php

Sto cercando di riprendermi usando cURL con l'API di Freshbooks. Ha due modi di authentication: OpenAuth e token based. Sto cercando di utilizzare il metodo basato su token. Ho usato cURL in precedenza ma le mie credenziali di authentication sono sempre state passate nel xml.

Con i libri freschi, sembra che ho bisogno di passare le credenziali nell'intestazione della richiesta di curl … penso. Di seguito è riportto un codice di esempio che utilizza il metodo OpenAuth. Usando l'authentication basata su token, sto solo supponendo di passare un nome utente e una password.

Come faccio a passare correttamente le mie credenziali con la mia richiesta di cURL?

http://developers.freshbooks.com/authentication-2/#TokenBased

private function buildAuthHeader() { $params = arrays( 'oauth_version' => '1.0', 'oauth_consumer_key' => $this->oauth_consumer_key, 'oauth_token' => $this->oauth_token, 'oauth_timestamp' => time(), 'oauth_nonce' => $this->createNonce(20), 'oauth_signature_method' => 'PLAINTEXT', 'oauth_signature' => $this->oauth_consumer_secret. '&' .$this->oauth_token_secret ); $auth = 'OAuth realm=""'; foreach($params as $kk => $vv) { $auth .= ','.$kk . '="' . urlencode($vv) . '"'; } return $auth; } public function post($request) { $this->fberror = NULL; $headers = arrays( 'Authorization: '.$this->buildAuthHeader().'', 'Content-Type: application/xml; charset=UTF-8', 'Accept: application/xml; charset=UTF-8', 'User-Agent: My-Freshbooks-App-1.0'); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $this->apiUrl()); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $request); $response = curl_exec($ch); curl_close($ch); $response = new SimpleXMLElement($response); if($response->attributes()->status == 'ok') return $response; else if($response->attributes()->status == 'fail' || $response->fberror) throw new FreshbooksAPIError($response->error); else throw new FreshbooksError('Oops, something went wrong. :('); } 

L'esempio della row di command di curl -u nella tua pagina collegata sta semplicemente usando l'authentication di base HTTP where il token è il nome utente. Il phpcurl equivalente sarebbe

 curl_setopt($ch, CURLOPT_USERPWD, "$token:$password");