L'esempio PHP di Microsoft per la nuova API Bing non funziona. Ho provato in molti modi, mostra solo:Il nuovo esempio PHP Bing API non funziona
Server Error
401 - Unauthorized: Accesso negato a causa di credenziali non valide.
Non si dispone dell'autorizzazione per visualizzare questa directory o pagina utilizzando le credenziali fornite.
Esempio di codificazione indicato nella documentazione ufficiale è al di sotto, si rompe a
'proxy' => 'tcp://127.0.0.1:8888',
Sono sicuro al 100% la mia chiave è corretta, e quando ho appena entro nel URL del browser funziona benissimo , vale a dire
https://api.datamarket.azure.com/Bing/SearchWeb/Web?Query=%27love+message%27
(è necessario mettere la chiave API come password e nome utente può essere qualsiasi 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>
Ho provato entrambe le API di google e le API di Yahoo entrambe, nessuna di queste era difficile come questa.
Non essere così pronti a dare la colpa di MS. Ci sono * molte * persone che usano l'API, se fossero intrinsecamente rotte sono sicuro che * qualcuno * lo avrebbe notato ormai. – JJJ
Stai eseguendo un proxy locale che richiede l'autenticazione? La tua chiave API BING non significherà assolutamente nulla per un proxy locale. –
non so quante persone hanno questo problema, tuttavia, codice di esempio fornito in google, yahoo api è molto più pulito e funziona perfettamente .. potrebbe essere intenzionalmente non volere sviluppatori PHP per usarlo .. comunque .. – mahen3d