Собственный пример Microsoft PHP для нового Bing API не работает. Я пробовал разными способами, это просто показывает:
Ошибка сервера
401 - Несанкционировано: доступ запрещен из-за неверных учетных данных.
У вас нет разрешения на просмотр этого каталога или страницы с использованием предоставленных вами учетных данных.
Пример Кодировка, приведенная в официальной документации, приведена ниже, она разбивается на
'proxy' => 'tcp://127.0.0.1:8888',
Я на 100% уверен, что мой ключ правильный, и когда я просто ввожу его в URL-адрес браузера, он работает нормально, т.е.
https://api.datamarket.azure.com/Bing/SearchWeb/Web?Query=%27love+message%27
(вам нужно поставить ключ API, так как ваш пароль и имя пользователя могут быть любыми)
<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>
Я пробовал и Google API, и Yahoo API, ни один из них не был таким сложным, как этот.