El propio ejemplo PHP de Microsoft para la nueva API Bing no funciona. He intentado de muchas maneras, sólo se muestra:El nuevo ejemplo PHP API Bing no funciona
error de servidor
401 - No autorizado: acceso denegado debido a credenciales no válidas.
No tiene permiso para ver este directorio o la página utilizando las credenciales que ha proporcionado.
Ejemplo codificación en la documentación oficial está por debajo, se rompe en
'proxy' => 'tcp://127.0.0.1:8888',
estoy 100% seguro de que mi clave es correcta, y cuando acaba de entrar en la URL del navegador funciona bien , es decir
https://api.datamarket.azure.com/Bing/SearchWeb/Web?Query=%27love+message%27
(que necesita para poner la clave de API como su contraseña y nombre de usuario puede ser cualquier cosa)
<html>
<head>
<link href="styles.css" rel="stylesheet" type="text/css" />
<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']))
{
// Replace this value with your account key
$accountKey = 'BKqC2hIKr8foem2E1qiRvB5ttBQJK8objH8kZE/WJVs=';
$ServiceRootURL = 'https://api.datamarket.azure.com/Bing/Search/';
$WebSearchURL = $ServiceRootURL . 'Image?$format=json&Query=';
$context = stream_context_create(array(
'http' => array(
//'proxy' => 'tcp://127.0.0.1:8888',
'request_fulluri' => true,
'header' => "Authorization: Basic " . base64_encode($accountKey . ":" . $accountKey)
)
));
$request = $WebSearchURL . urlencode('\'' . $_POST["searchText"] . '\'');
echo($request);
$response = file_get_contents($request, 0, $context);
print_r($response);
$jsonobj = json_decode($response);
echo('<ul ID="resultList">');
foreach($jsonobj->d->results as $value)
{
echo('<li class="resultlistitem"><a href="' . $value->MediaURL . '">');
echo('<img src="' . $value->Thumbnail->MediaUrl. '"></li>');
}
echo("</ul>");
}
?>
</form>
</body>
</html>
He intentado tanto la API de Google como la API de Yahoo, ninguno de ellos fue tan difícil como este.
No sea tan rápido para culpar a la EM. Hay * muchas * personas que usan la API, si se rompiera de forma inherente, estoy seguro de que * alguien * ya lo habría notado. – JJJ
¿Está ejecutando un proxy local que requiere autenticación? Su clave api BING va a significar absolutamente nada para un proxy local. –
no sé cuántas personas tienen este problema, sin embargo, la codificación de ejemplo dada en google, yahoo api es mucho más limpia y funciona perfectamente ... puede ser que intencionalmente no quieren php desarrolladores para usarlo .. de todos modos .. – mahen3d