Как я могу отобразить 50 или 100 результатов API Bing News? - PullRequest
0 голосов
/ 24 мая 2018

Следующий код не возвращает 50 результатов новостей.Я использую &count=50&offset=0, но не работает.

Любая помощь приветствуется.

$endpoint = 'https://api.cognitive.microsoft.com/bing/v7.0/news';

$term = $_GET['q'];
$site = '(((site:aaa.com+OR+site:bbb.com)+OR+site:ccc.net)+OR+site:ddd.com)';


function BingNewsSearch ($url, $key, $query, $site) {

$headers = "Ocp-Apim-Subscription-Key: $key\r\n";
$options = array ('http' => array (
                      'header' => $headers,
                      'method' => 'GET' ));

// Perform the Web request and get the JSON response
$context = stream_context_create($options);
$result = file_get_contents($url . "?q=" . 
urlencode($query).'+'.$site.'&cc=CR&setLang=es&count=50&offset=0', false, 
$context);


// Extract Bing HTTP headers
$headers = array();
foreach ($http_response_header as $k => $v) {
    $h = explode(":", $v, 2);
    if (isset($h[1]))
        if (preg_match("/^BingAPIs-/", $h[0]) || preg_match("/^X-MSEdge-/", $h[0]))
            $headers[trim($h[0])] = trim($h[1]);
}

return array($headers, $result);
}

print "Searching news for: " . $term . "\n";

list($headers, $json) = BingNewsSearch($endpoint, $accessKey, $term, $site);

1 Ответ

0 голосов
/ 24 мая 2018

Здесь есть несколько вопросов.1) Конечная точка должна иметь / search в конце, 2) Вы пытаетесь ограничить результаты доменами aaa, bbb, ccc и ddd.Тебе это действительно нужно?и 3) Используйте параметр mkt вместо параметров cc и setLang .Кроме того, cc = CR не является правильным значением.

Вы можете проверить поддерживаемые рынки здесь: https://docs.microsoft.com/en-us/rest/api/cognitiveservices/bing-news-api-v7-reference.

...