私はinfojobs-apiとの接続を試みています、ドキュメントはこの方法でそれを作る方法を説明しています:
GET/api/1/application HTTP/1.1
ホスト:api.infojobs.net承認:基本的なQWxhZGRpbjpvcGVuIHNlc2FtZQ ==、Bearer 07d18fac-77ea-461f-9bfe-a5e9d98deb3d
( https://developer.infojobs.net/documentation/user-oauth2/index.xhtml )
そしてこれは私のコードです:
$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);
API/Guzlleは私にこのエラーを返します:
致命的なエラー:キャッチされていないGuzzleHttp\Exception\ClientException:クライアントエラー:
GET https://api.infojobs.net/api/1/curriculum
は401 No Autorizado
レスポンス:{"error": "102"、 "error_description": "クライアント資格情報が無効です"、 "timestamp": "2016-06-25T14:08:54.774Z"}/app/vendor/guzzlehttp/guzzle /src/Exception/RequestException.php:107
だから私は何か悪いことをしていますが、何が悪いのかわかりません。
どんな考えでも、ありがとう。
オスカー
私はあなたのリクエストのHTTPヘッダーを見ているので:
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==,Bearer 07d18fac-77ea-461f-9bfe-a5e9d98deb3d
カンマ区切りの値を含むAuthorization
ヘッダーがあります。彼らはお互いから離れていません。したがって、これまでのようにGuzzleのauth
キーを利用することはできません。
あなたがすべきことは、Authorizationヘッダーを手動で設定することです:
$newresponse = $basicauth->request(
'GET',
'api/1/curriculum',
['debug' => true],
['headers' =>
[
'Authorization' => "Basic {$credentials},Bearer {$acceso->access_token}"
]
]
)->getBody()->getContents();