2016-09-13 15 views
1

HTTP/Request2.phpコンポーネント(as used in the official examples)を使用せずにBingの画像検索APIを使用していくつかの結果を得ようとしています。Bing Image search API v5.0 PHPの例

非常にプリミティブな呼び出しを行うために必要な2つのパラメータは、クエリ文字列であるqsubscription keyです。 keyはヘッダーを使用して送信する必要があります。周りを見回した後、私はPHPを使ってヘッダーを送信するこの非常に簡単な例を見つけました:

$sURL = "https://api.cognitive.microsoft.com/bing/v5.0/images/search?q=cats"; 
$aHTTP = array(
    'Ocp-Apim-Subscription-Key' => 'xxxxxxx', 
); 
$context = stream_context_create($aHTTP); 
$contents = file_get_contents($sURL, false, $context); 

echo $contents; 

しかし、何も出力しません。 BingのAPIの使用の非常に基本的な例を教えてくれてありがとう。

答えて

1

cURLの

$sURL = "https://api.cognitive.microsoft.com/bing/v5.0/images/search?q=cats"; 
$key = "xxxxxxx"; 


$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $sURL); 
curl_setopt($ch, CURLOPT_TIMEOUT, '1'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 'ocp-apim-subscription-key:$key'); 
$content = curl_exec($ch); 

echo $content; 
+0

APIが「不足しているキー」を返すので、「キー」は認識されないようです。 – Nicero

2

を使用してみてくださいは、ヴァディムのヒントに

感謝を解決した私は、ヘッダが送信される方法が変更され、現在の出力は、JSONエンコードされた結果です。 (APIサブスクリプションキーを忘れずに追加してください)

$sURL = "https://api.cognitive.microsoft.com/bing/v5.0/images/search?q=cats"; 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $sURL); 
curl_setopt($ch, CURLOPT_TIMEOUT, '1'); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Content-Type: multipart/form-data', 
    'Ocp-Apim-Subscription-Key: xxxxx' 
)); 
$content = curl_exec($ch); 

echo $content; 

もう1つのヒント。クエリフィルタやその他のパラメータの構文は、バージョンごとに変更されます。たとえば、バージョン5.0で正常に次の作業:

は猫のJPEG画像を検索し、30件の結果を得るために使用します。

q=cats&encodingFormat='jpeg'&count=30 

をのみ200×200と500×500のサイズと「肖像」アスペクト画像を検索するには使用:

q=cats&aspect=Tall&size=Medium 
0
ここ

私の作業コードが..です はあなたビングサブスクリプションキーと********交換してください。

 $sURL = "https://api.cognitive.microsoft.com/bing/v5.0/images/search?q=microsoft-surface&count=6&mkt=en-US"; 
     $ch = curl_init(); 
     curl_setopt($ch, CURLOPT_URL, $sURL); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
     curl_setopt($ch, CURLOPT_HTTPHEADER, array(
      'Content-Type: multipart/form-data', 
      'Ocp-Apim-Subscription-Key: *******************' 
     )); 
     $contents = curl_exec($ch); 
     $myContents = json_decode($contents); 
     if(count($myContents->value) > 0) { 
      foreach ($myContents->value as $imageContent) { 
       echo '<pre/>'; 
       print_r($imageContent); 
      } 
     } 
関連する問題