Szybki Start: wykonywanie wyszukiwania w wiadomościach przy użyciu języka PHP i interfejsu API REST wyszukiwanie wiadomości BingQuickstart: Perform a news search using PHP and the Bing News Search REST API

Ostrzeżenie

Interfejsy API wyszukiwania Bing są przenoszone z Cognitive Services do usług Wyszukiwanie Bing.Bing Search APIs are moving from Cognitive Services to Bing Search Services. Od 30 października 2020 wszystkie nowe wystąpienia wyszukiwanie Bing muszą być obsługiwane zgodnie z procesem opisanym tutaj.Starting October 30, 2020, any new instances of Bing Search need to be provisioned following the process documented here. Interfejsy API wyszukiwania Bing obsługa administracyjna przy użyciu Cognitive Services będzie obsługiwana przez kolejne trzy lata lub do końca Umowa Enterprise, w zależności od tego, co nastąpi wcześniej.Bing Search APIs provisioned using Cognitive Services will be supported for the next three years or until the end of your Enterprise Agreement, whichever happens first. Instrukcje dotyczące migracji znajdują się w temacie wyszukiwanie Bing Services.For migration instructions, see Bing Search Services.

Użyj tego przewodnika Szybki Start, aby wykonać pierwsze wywołanie do interfejs API wyszukiwania wiadomości Bing.Use this quickstart to make your first call to the Bing News Search API. Ta prosta aplikacja PHP wysyła zapytanie wyszukiwania do interfejsu API i wyświetla odpowiedź JSON.This simple PHP application sends a search query to the API and displays the JSON response.

Mimo że aplikacja jest zapisywana w języku PHP, interfejs API jest usługą sieci Web RESTful zgodną z większością języków programowania.Although this application is written in PHP, the API is a RESTful Web service compatible with most programming languages.

Wymagania wstępnePrerequisites

  • Język PHP 5.6 lub nowszyPHP 5.6 or later

Tworzenie zasobu platformy AzureCreate an Azure resource

Zacznij korzystać z interfejs API wyszukiwania wiadomości Bing, tworząc jeden z następujących zasobów platformy Azure:Start using the Bing News Search API by creating one of the following Azure resources:

Wyszukiwanie Bing zasób wersji 7Bing Search v7 resource

  • Dostępne w Azure Portal do momentu usunięcia zasobu.Available through the Azure portal until you delete the resource.
  • Skorzystaj z warstwy cenowej bezpłatna do wypróbowania usługi i przeprowadź uaktualnienie później do warstwy płatnej dla środowiska produkcyjnego.Use the free pricing tier to try the service, and upgrade later to a paid tier for production.

Zasób obejmujący wiele usługMulti-service resource

  • Dostępne w Azure Portal do momentu usunięcia zasobu.Available through the Azure portal until you delete the resource.
  • Użyj tego samego klucza i punktu końcowego dla aplikacji w wielu Cognitive Services.Use the same key and endpoint for your applications, across multiple Cognitive Services.

Aby uzyskać więcej informacji, zobacz Cognitive Services Cennik — wyszukiwanie Bing API.For more information, see Cognitive Services Pricing - Bing Search API.

Uruchamianie aplikacjiRun the application

Aby uruchomić tę aplikację, wykonaj następujące kroki:To run this application, follow these steps:

  1. Włącz bezpieczną obsługę protokołu HTTP w php.ini pliku przez usunięcie komentarza do ;extension=php_openssl.dll wiersza, zgodnie z opisem w komentarzu do kodu.Enable secure HTTP support in your php.ini file by uncommenting the ;extension=php_openssl.dll line, as described in the code comment.
  2. Utwórz nowy projekt PHP w ulubionym środowisku IDE lub edytorze.Create a new PHP project in your favorite IDE or editor.
  3. Dodaj kod przedstawiony poniżej.Add the code provided below.
  4. Zastąp wartość accessKey kluczem dostępu właściwym dla Twojej subskrypcji.Replace the accessKey value with an access key valid for your subscription.
  5. Możesz użyć globalnego punktu końcowego w poniższym kodzie lub użyć punktu końcowego niestandardowej domeny podrzędnej wyświetlanego w Azure Portal dla zasobu.You can use the global endpoint in the following code, or use the custom subdomain endpoint displayed in the Azure portal for your resource.
  6. Uruchomisz program.Run the program.
<?php

// NOTE: Be sure to uncomment the following line in your php.ini file.
// ;extension=php_openssl.dll

// **********************************************
// **_ Update or verify the following values. _*_
// _*********************************************

// Replace the accessKey string value with your valid access key.
$accessKey = 'enter key here';

// Verify the endpoint URI.  At this writing, only one endpoint is used for Bing
// search APIs.  In the future, regional endpoints may be available.  If you
// encounter unexpected authorization errors, double-check this value against
// the endpoint for your Bing Search instance in your Azure dashboard.
$endpoint = 'https://api.cognitive.microsoft.com/bing/v7.0/news/search';

$term = 'Microsoft';

function BingNewsSearch ($url, $key, $query) {
    // Prepare HTTP request
    // NOTE: Use the key 'http' even if you are making an HTTPS request. See:
    // https://php.net/manual/en/function.stream-context-create.php
    $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), 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);

print "\nRelevant Headers:\n\n";
foreach ($headers as $k => $v) {
    print $k . ": " . $v . "\n";
}

print "\nJSON Response:\n\n";
echo json_encode(json_decode($json), JSON_PRETTY_PRINT);
?>

Przykładowa odpowiedź JSONExample JSON response

Po pomyślnym przetworzeniu żądania zostanie zwrócona odpowiedź w formacie JSON, jak pokazano w następującym przykładzie:A successful response is returned in JSON, as shown in the following example:

{
   "_type": "News",
   "readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/news\/search?q=Microsoft",
   "totalEstimatedMatches": 36,
   "sort": [
      {
         "name": "Best match",
         "id": "relevance",
         "isSelected": true,
         "url": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/news\/search?q=Microsoft"
      },
      {
         "name": "Most recent",
         "id": "date",
         "isSelected": false,
         "url": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/news\/search?q=Microsoft&sortby=date"
      }
   ],
   "value": [
      {
         "name": "Microsoft to open flagship London brick-and-mortar retail store",
         "url": "http:\/\/www.contoso.com\/article\/microsoft-to-open-flagshi...",
         "image": {
            "thumbnail": {
               "contentUrl": "https:\/\/www.bing.com\/th?id=ON.F9E4A49EC010417...",
               "width": 220,
               "height": 146
            }
         },
         "description": "After years of rumors about Microsoft opening a brick-and-mortar...", 
         "about": [
           {
             "readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entiti...", 
             "name": "Microsoft"
           }, 
           {
             "readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entit...", 
             "name": "London"
           }
         ], 
         "provider": [
           {
             "_type": "Organization", 
             "name": "Contoso"
           }
         ], 
          "datePublished": "2017-09-21T21:16:00.0000000Z", 
          "category": "ScienceAndTechnology"
      }, 

      . . .
      
      {
         "name": "Microsoft adds Availability Zones to its Azure cloud platform",
         "url": "https:\/\/contoso.com\/2017\/09\/21\/microsoft-adds-availability...",
         "image": {
            "thumbnail": {
               "contentUrl": "https:\/\/www.bing.com\/th?id=ON.0AE7595B9720...",
               "width": 700,
               "height": 466
            }
         },
         "description": "Microsoft has begun adding Availability Zones to its...",
         "about": [
            {
               "readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entities\/a093e9b...",
               "name": "Microsoft"
            },
            {
               "readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entities\/cf3abf7d-e379-...",
               "name": "Windows Azure"
            },
            {
               "readLink": "https:\/\/api.cognitive.microsoft.com\/api\/v7\/entities\/9cdd061c-1fae-d0...",
               "name": "Cloud"
            }
         ],
         "provider": [
            {
               "_type": "Organization",
               "name": "Contoso"
            }
         ],
         "datePublished": "2017-09-21T09:01:00.0000000Z",
         "category": "ScienceAndTechnology"
      }
   ]
}

Następne krokiNext steps