2016-07-13 18 views
1

HTTP基本認証を使用してAPIからデータを取得しようとしています。 APIへのHTTP要求は、HTTP基本認証で保護されています。 HTTP基本認証はトークンと秘密で構成されます。HTTP基本認証PHPを使用するcURL

私はさまざまな手法を試しましたが、認証が提供されていないという応答を得ています。私はtoken:secretメソッドがusername:passwordと異なるのかどうかはわかりませんが、これを認証することはできません。

はstdClassは ( [ERROR_MESSAGE] =>認証が設けられていない 。)オブジェクト

ここ

は、APIドキュメントである - https://www.whatconverts.com/api/

<?php 


$token = "xxx"; 
$secret = "yyy"; 
$response = get_web_page("https://leads.seekmomentum.com/api/v1/leads"); 
$resArr = array(); 
$resArr = json_decode($response); 
echo "<pre>"; print_r($resArr); echo "</pre>"; 

function get_web_page($url) { 
    $options = array(
     CURLOPT_RETURNTRANSFER => true, // return web page 
     CURLOPT_HEADER   => false, // don't return headers 
     CURLOPT_FOLLOWLOCATION => true, // follow redirects 
     CURLOPT_MAXREDIRS  => 10,  // stop after 10 redirects 
     CURLOPT_ENCODING  => "",  // handle compressed 
     CURLOPT_USERAGENT  => "test", // name of client 
     CURLOPT_AUTOREFERER => true, // set referrer on redirect 
     CURLOPT_CONNECTTIMEOUT => 120, // time-out on connect 
     CURLOPT_TIMEOUT  => 120, // time-out on response 
     CURLOPT_HTTPAUTH  => "CURLAUTH_BASIC", // authentication method 
     CURLOPT_USERPWD  => "$token:$secret", // authentication 

    ); 


    $ch = curl_init($url); 
    curl_setopt_array($ch, $options); 

    $content = curl_exec($ch); 

    curl_close($ch); 

    return $content; 
} 

?> 
+0

別のCURLOPT_USERNAMEとCURLOPT_PASSWORDを試しましたか? –

+1

あなたの資格情報をお寄せいただきありがとうございます...すぐに変更/無効化されたものを手に入れたいかもしれません。 –

+1

'CURLAUTH_BASIC'の前後の引用符を削除します。これは定数であり、値ではありません。 – iainn

答えて

3

これは間違っている:

CURLOPT_HTTPAUTH  => "CURLAUTH_BASIC", // authentication method 
           ^^^^^^^^^^^^^^^^ 

です文字列であり、カール定数ではありません。代わりに

CURLOPT_HTTPAUTH  => CURLAUTH_BASIC, // authentication method 

を試してください。

それは違います:あなたはローカルスコープにあなたのグローバル変数を渡す必要があり

define('FOO', 'bar'); 

echo FOO // outputs bar 
echo "FOO" // outputs FOO 
0

function get_web_page($url, $token, $secret) { 

と変更:

function get_web_page($url) { 

へ:

変更...これを行うには

$response = get_web_page("https://leads.seekmomentum.com/api/v1/leads"); 

へ:

$response = get_web_page("https://leads.seekmomentum.com/api/v1/leads", $token, $secret); 

と:

CURLAUTH_BASICの前後の引用符を削除します。これは定数であり、値ではありません。 (hat tip to @iainn)

+0

ありがとうBen!それがそれでした。 – user2748363

+0

@ user2748363喜んで私は助けることができました。質問に対する答えとして自分の答えを選択してください。 –

関連する問題