2016-06-25 21 views
3

Ich versuche, eine Verbindung mit Infojobs-api zu machen, die Dokumentation explian, wie es auf diese Weise zu machen:PHP Guzzle mit grundlegenden Auth und Inhaber Token

GET /api/1/application HTTP/1.1
Host: api.infojobs.net Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==,Bearer 07d18fac-77ea-461f-9bfe-a5e9d98deb3d

(https://developer.infojobs.net/documentation/user-oauth2/index.xhtml)

Und dies ist mein Code:

$basicauth = new Client(['base_uri' => 'https://api.infojobs.net']); 

$credentials = base64_encode(CLIENT_ID .':' . CLIENT_SECRET) ; 

$newresponse = $basicauth->request(
    'GET', 
    'api/1/curriculum', 
    ['debug' => true], 
    ['auth' => 
    ['Basic', $credentials] , 
    ['Bearer', $acceso->access_token] 
    ] 
)->getBody()->getContents(); 

d($newresponse); 

Die API/Guzlle geben Sie mir diesen Fehler zurück:

Fatal error: Uncaught GuzzleHttp\Exception\ClientException: Client error: GET https://api.infojobs.net/api/1/curriculum resulted in a 401 No Autorizado response: {"error":"102","error_description":"Client credentials not valid","timestamp":"2016-06-25T14:08:54.774Z"} in /app/vendor/guzzlehttp/guzzle/src/Exception/RequestException.php:107

Also mache ich etwas falsch, aber ich finde nicht, was es falsch ist.

Irgendeine Idee, danke.

Oskar

Antwort

5

Als ich Ihre Anfrage HTTP-Header zu sehen:

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==,Bearer 07d18fac-77ea-461f-9bfe-a5e9d98deb3d 

Sie haben eine Authorization Header, der ein Komma getrennt Wert enthält. Sie sind nicht voneinander getrennt. So können Sie nicht von Guzzles auth Schlüssel profitieren, wie Sie es getan haben.

Was sollten Sie tun, manuell Authorization-Header setzt:

$newresponse = $basicauth->request(
    'GET', 
    'api/1/curriculum', 
    ['debug' => true], 
    ['headers' => 
     [ 
      'Authorization' => "Basic {$credentials},Bearer {$acceso->access_token}" 
     ] 
    ] 
)->getBody()->getContents();