2013-01-18 119 views
-2

我想用bing api鍵搜索一些圖片。 我寫了這段代碼,但它不起作用,它不會返回一些錯誤。 我認爲這是一個API錯誤...你能幫我嗎?bing api搜索

$accountKey = 's+s/s='; 
$rootUri = 'https://api.datamarket.azure.com/Bing/Search'; 

// Get the query. Default to 'sushi'. 
$query = ($_GET['q']) ? $_GET['q'] : 'sushi'; 

// Get the service operation. Default to Web. 
$serviceOp = ($_GET['sop']) ? $_GET['sop'] : 'Web'; 

// Get the market. Default to en-us. 
$market = ($_GET['market']) ? $_GET['market'] : 'en-us'; 

$ServiceRootURL = 'https://api.datamarket.azure.com/Bing/SearchWeb/'; 
$WebSearchURL = $ServiceRootURL . 'Web?$format=json&Query='; 

$request = $WebSearchURL . urlencode('\'' . $query. '\''); 
echo $request; 
//$requestUri = "$rootUri/$serviceOp?\$format=json&Query=$query&Market=$market"; 

$process = curl_init($request); 
curl_setopt($process, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); 
curl_setopt($process, CURLOPT_USERPWD, $accountKey . ":" . $accountKey); 
curl_setopt($process, CURLOPT_TIMEOUT, 30); 
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE); 
$response = curl_exec($process); 
$jsonobj = json_decode($response); 
echo "<br>Ris = ".$jsonobj; 
+0

至少打印/日誌什麼cur_exec正在恢復。 HTTP代碼本身。 – Amit

+0

您沒有發送您的api密鑰,所以請求401未經授權。 – j0k

+0

我該如何發送它?謝謝 – michele

回答

2

我剛跳進the documentation,你可以使用file_get_contents,而不是捲曲。

<?php 
$accountKey = 'xxxxx'; 

$auth = base64_encode("$accountKey:$accountKey"); 

$data = array(
    'http'   => array(
    'request_fulluri' => true, 
    'ignore_errors' => true, 
    'header'   => "Authorization: Basic $auth") 
); 

$context = stream_context_create($data); 
$query  = isset($_GET['q']) ? $_GET['q'] : 'sushi'; 
$serviceOp = isset($_GET['sop']) ? $_GET['sop'] : 'Web'; 
$market = isset($_GET['market']) ? $_GET['market'] : 'en-us'; 

$ServiceRootURL = 'https://api.datamarket.azure.com/Bing/Search/'; 
$WebSearchURL = $ServiceRootURL . 'Web?$format=json&Query='; 

$request = $WebSearchURL . urlencode('\'' . $query. '\''); 

// Get the response from Bing. 
$response = file_get_contents($request, 0, $context); 
var_dump($response); 
+1

您提供的授權類型不受支持。只支持Basic和OAuth這個錯誤是與你的和我的腳本返回..... – michele

+0

@michele你有更新'$ accountKey'你的?順便說一下,你正在使用的'ServiceRootURL'是錯誤的,它應該以'Search'而不是'SearchWeb'結尾。 – j0k

+0

謝謝,網址不正確! – michele