New Bing API PHP example doesnt work
after days of argument with microsoft techinchal support they accpeted that it didnt work
here is the proper coding which uses CURL do this in the BING API, apply CURL method instead of the file_get_contents which can’t pass the correct authentication information from Linux client to BING service.
<html> <head> <title>PHP Bing</title> </head> <body> <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>"> Type in a search: <input type="text" id="searchText" name="searchText" value="<?php if (isset($_POST['searchText'])) { echo($_POST['searchText']); } else { echo('sushi'); } ?>" /> <input type="submit" value="Search!" name="submit" id="searchButton" /> <?php if (isset($_POST['submit'])) { $credentials = "username:xxx"; $url= "https://api.datamarket.azure.com/Bing/SearchWeb/Web?Query=%27{keyword}%27"; $url=str_replace('{keyword}', urlencode($_POST["searchText"]), $url); $ch = curl_init(); $headers = array( "Authorization: Basic " . base64_encode($credentials) ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,5); curl_setopt($ch, CURLOPT_FAILONERROR, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_AUTOREFERER, true); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $rs = curl_exec($ch); echo($rs); curl_close($ch); return $rs; } ?> </form> </body></html>
$WebSearchURL = $ServiceRootURL . 'Image?$format=json&Query=';
This is part of the prob
This wont give the url bing is looking for
e.g. https://api.datamarket.azure.com/Bing/SearchWeb/Web?Query=%27love+message%27
it would be
https://api.datamarket.azure.com/Bing/Search/Image?$format=json&Query=%27love+message%27
whereas you want a web not an image search and also format and other parameters shld be after the query
"image" should be "web"
I just spent 3 days trying to get this to work.