Snelstart: Nieuws zoeken met PHP en de REST API van Bing News SearchQuickstart: Perform a news search using PHP and the Bing News Search REST API

Waarschuwing

Bing Search-API's worden van Cognitive Services naar Bing Search Services overgezet.Bing Search APIs are moving from Cognitive Services to Bing Search Services. Vanaf 30 oktober 2020 moeten nieuwe instanties van Bing Search worden ingericht overeenkomstig het proces dat hier is beschreven.Starting October 30, 2020, any new instances of Bing Search need to be provisioned following the process documented here. Bing Search-API's die zijn ingericht met Cognitive Services, worden voor de komende drie jaar of tot het einde van uw Enterprise Agreement ondersteund, afhankelijk van wat het eerst afloopt.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. Raadpleeg Bing Search Services voor migratie-instructies.For migration instructions, see Bing Search Services.

Gebruik deze quickstart om uw eerste aanroep naar de Bing Nieuws zoeken-API te maken.Use this quickstart to make your first call to the Bing News Search API. Deze eenvoudige PHP-toepassing stuurt een zoekquery naar de API en geeft het JSON-antwoord weer.This simple PHP application sends a search query to the API and displays the JSON response.

Hoewel deze toepassing in PHP is geschreven, is de API een RESTful-webservice die compatibel is met vrijwel elke programmeertaal.Although this application is written in PHP, the API is a RESTful Web service compatible with most programming languages.

VereistenPrerequisites

  • PHP 5.6 of hogerPHP 5.6 or later

Een Azure-resource makenCreate an Azure resource

Begin met het gebruik van de Bing News Search-API door een van de volgende Azure-resources te maken:Start using the Bing News Search API by creating one of the following Azure resources:

Bing Search v7-resourceBing Search v7 resource

  • Beschikbaar via de Azure-portal totdat u de resource verwijdert.Available through the Azure portal until you delete the resource.
  • Gebruik de gratis prijscategorie om de service uit te proberen, en voer later een upgrade uit naar een betaalde categorie voor productie.Use the free pricing tier to try the service, and upgrade later to a paid tier for production.

Resource voor meerdere servicesMulti-service resource

  • Beschikbaar via de Azure-portal totdat u de resource verwijdert.Available through the Azure portal until you delete the resource.
  • Gebruik dezelfde sleutel en hetzelfde eindpunt voor uw toepassingen, op meerdere Cognitive Services.Use the same key and endpoint for your applications, across multiple Cognitive Services.

Zie Prijzen van Cognitive Services - Bing Search-API voor meer informatie.For more information, see Cognitive Services Pricing - Bing Search API.

De toepassing uitvoerenRun the application

Volg deze stappen voor het uitvoeren van deze toepassing:To run this application, follow these steps:

  1. Schakel veilige HTTP-ondersteuning voor het php.ini-bestand in door de opmerkingen bij regel ;extension=php_openssl.dll te verwijderen, zoals beschreven in de opmerking bij de code.Enable secure HTTP support in your php.ini file by uncommenting the ;extension=php_openssl.dll line, as described in the code comment.
  2. Maak een nieuw PHP-project in uw favoriete IDE of editor.Create a new PHP project in your favorite IDE or editor.
  3. Voeg de onderstaande code toe.Add the code provided below.
  4. Vervang de waarde accessKey door een geldige toegangssleutel voor uw abonnement.Replace the accessKey value with an access key valid for your subscription.
  5. U kunt het globale eindpunt in de volgende code gebruiken of het eindpunt voor een aangepast subdomein gebruiken dat wordt weergegeven in de Azure-portal voor uw resource.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. Voer het programma uit.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);
?>

Voorbeeld van JSON-antwoordExample JSON response

Een geslaagd antwoord wordt geretourneerd in de JSON-indeling, zoals u kunt zien in het volgende voorbeeld: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"
      }
   ]
}

Volgende stappenNext steps