2016-04-10 6 views
0

、ここではドキュメント:私のコードは、現在、このようになりますトラブル - 私はリードAPIに接続するように見える傾けるPHP

You will need to include your api key for all requests in a basic authentication http header as the username, leaving the password empty. 

$api_key = 'MY-API-KEY'; 
    $url = ' https://www.reed.co.uk/api/1.0/search?keywords=Accounts Assistant&resultsToTake=100&resultsToSkip=0' 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, urlencode($url)); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'Authorization: Basic '.$api_key 
    )); 

    $server_output = curl_exec($ch); 

    curl_close($ch); 

    var_dump($server_output); 
https://www.reed.co.uk/developers/jobseeker

が、それはと述べています

出力は常にある:

bool(false) 

私は見逃したことがありますか?他の誰かが接続できますか? 私のブラウザでURLを直接試してみましたが、ポップアップの認証ボックスでapiキーを使用した後で、URLとapiキーが正しいことがわかりました。

+0

接続は正しいですか? –

+0

申し訳ありませんが、これはどういう意味ですか? – rpsep2

+0

あなたの承認ヘッダーはおそらく '' Authorization:Basic ".base64_encode($ your_api_key。": ")'でなければなりません。 – Chris

答えて

0

この回答(https://stackoverflow.com/a/13654911/5056954

を参照してください私は葦のウェブサイトにアクセスしようと、それはそのものユーザー名を求めているようです。 Basic authもbase64でエンコードされているので、ユーザー名が不要な場合は次のスニペットが有効です:

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
     'Authorization: Basic '. base64_encode($api_key) 
    )); 
0

最も簡単な方法は、Postmanを使用することです。一度クエリを調整すると、多くのプログラミング言語でコードのスニペットが得られます。

$curl = curl_init(); 

curl_setopt_array($curl, array(
    CURLOPT_URL => "http://www.reed.co.uk/api/1.0/search?keywords=accountant&location=london", 
    CURLOPT_RETURNTRANSFER => true, 
    CURLOPT_ENCODING => "", 
    CURLOPT_MAXREDIRS => 10, 
    CURLOPT_TIMEOUT => 30, 
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, 
    CURLOPT_CUSTOMREQUEST => "GET", 
    CURLOPT_HTTPHEADER => array(
"authorization: Basic YOUR-AUTOMATICALLY-ENCODED-API-KEY-BY-POSTMAN", 
"cache-control: no-cache" 
), 
)); 

$response = curl_exec($curl); 
$err = curl_error($curl); 

curl_close($curl); 

if ($err) { 
    echo "cURL Error #:" . $err; 
} else { 
    echo $response; 
} 

ポストマンからのコードは、( "郵便配達トークン:XXXXXXX-XXXXXXX-XXXX")。ただ削除してください。

関連する問題