Microsoft Cognitive — API поиска Bing в отсутствующем свойстве webPages в ответе json

Я пытаюсь получить результаты поиска в соответствии с API документация

Вот что я написал в PHP

    require_once 'HTTP/Request2.php';

$api_key = 'my_bing_search_api_key';
$url_encoded_keyword = urlencode('animation concepts and tutorials');$request = new \Http_Request2('https://api.cognitive.microsoft.com/bing/v5.0/search');
$headers = [
'Ocp-Apim-Subscription-Key' => $api_key
];
$request->setHeader($headers);

$url = $request->getUrl();

$parameters = [
'q' => $url_encoded_keyword,
'count' => '10',
'offset' => '0',
'safesearch' => 'Strict',
);

$url->setQueryVariables($parameters);

$request->setMethod(\HTTP_Request2::METHOD_GET);

$request->setBody("{body}");

$search_result = null;
try {
$response = $request->send();
$search_results = json_decode($response->getBody(), true);
return $search_results;
} catch (HttpException $ex) {
return [];
}

Я получаю ответ, но у него нет свойства webPages. Он имеет только свойства _type, RankingResponse, relatedSearches и videos.
Я протестировал тот же запрос в консоль API. Там я получаю свойство webPages в ответе json.

Любые идеи, что могло быть причиной, почему я не получаю веб-страниц в PHP, но работает на сайте Microsoft Api Tester?

1

Решение

Из фрагмента кода вы передаете ключевое слово в API веб-поиска Bing после его кодирования.
$ url_encoded_keyword = urlencode («Концепции анимации и учебные пособия»);

$parameters = [
'q' => $url_encoded_keyword,
'count' => '10',
'offset' => '0',
'safesearch' => 'Strict',
);

Попробуйте без кодировки ключевого слова. От их Консоль тестирования API, HTTP-запрос для того же ключевого слова будет выглядеть как

https://api.cognitive.microsoft.com/bing/v5.0/search?q=animation
концепции и учебники&кол = 10&смещение = 0&МКТ = EN-US&SafeSearch = Умеренный

1

Другие решения

Других решений пока нет …