I'm trying to make a connection with infojobs-api, the documentation explian how to make it in this way:

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

()

And this is my code:

$basicauth = new Client(['base_uri' => '); $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); 

The API/Guzlle give me back this error:

Fatal error: Uncaught GuzzleHttp\Exception\ClientException: Client error: GET 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

So I'm doing something wrong, but I don't find what it's wrong.

Any idea, thanks.

Oskar

2 Answers

As I'm seeing your request's HTTP headers:

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

You have an Authorization header which contains a comma separated value. They are not apart from each other. So you can't benefit from Guzzle's auth key like what you have done.

What you should do is setting Authorization header manually:

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

For a post call this works for me:

$guzzle = new Client(['base_uri' => self::APIURL]); $raw_response = $guzzle->post($endpoint, [ 'headers' => [ 'Authorization' => 'Bearer ' . $publicKey ], 'body' => json_encode($data), ]); $response = $raw_response->getBody()->getContents(); 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy