Guida introduttiva: Eseguire una ricerca di notizie usando PHP e l'API REST Ricerca notizie BingQuickstart: Perform a news search using PHP and the Bing News Search REST API

Avviso

Le API Ricerca Bing sono state trasferite da Servizi cognitivi ai servizi di Ricerca Bing.Bing Search APIs are moving from Cognitive Services to Bing Search Services. A partire dal 30 ottobre 2020, è necessario effettuare il provisioning di tutte le nuove istanze di Ricerca Bing seguendo la procedura documentata qui.Starting October 30, 2020, any new instances of Bing Search need to be provisioned following the process documented here. Le API Ricerca Bing di cui viene effettuato il provisioning con Servizi cognitivi saranno supportate per i prossimi tre anni oppure fino alla data di fine del contratto Enterprise, se precedente.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. Per le istruzioni sulla migrazione, vedere Servizi di Ricerca Bing.For migration instructions, see Bing Search Services.

Usare questa guida di avvio rapido per effettuare la prima chiamata all'API Ricerca notizie Bing.Use this quickstart to make your first call to the Bing News Search API. Questa semplice applicazione PHP invia una query di ricerca all'API e visualizza la risposta JSON.This simple PHP application sends a search query to the API and displays the JSON response.

Anche se l'applicazione è scritta in PHP, l'API è un servizio Web RESTful compatibile con la maggior parte dei linguaggi di programmazione.Although this application is written in PHP, the API is a RESTful Web service compatible with most programming languages.

PrerequisitiPrerequisites

  • PHP 5.6 o versione successivaPHP 5.6 or later

Creare una risorsa di AzureCreate an Azure resource

Per iniziare a usare l'API Ricerca notizie Bing, creare una delle risorse di Azure seguenti:Start using the Bing News Search API by creating one of the following Azure resources:

Risorsa Ricerca Bing v7Bing Search v7 resource

  • disponibile tramite il portale di Azure fino a quando la risorsa non viene eliminata.Available through the Azure portal until you delete the resource.
  • Usare il piano tariffario gratuito per provare il servizio ed eseguire in un secondo momento l'aggiornamento a un livello a pagamento per la produzione.Use the free pricing tier to try the service, and upgrade later to a paid tier for production.

Risorsa multi-servizioMulti-service resource

  • disponibile tramite il portale di Azure fino a quando la risorsa non viene eliminata.Available through the Azure portal until you delete the resource.
  • Usare la stessa chiave e lo stesso endpoint per le applicazioni in più servizi cognitivi.Use the same key and endpoint for your applications, across multiple Cognitive Services.

Per altre informazioni, vedere Prezzi di Servizi cognitivi - API di ricerca Bing.For more information, see Cognitive Services Pricing - Bing Search API.

Eseguire l'applicazioneRun the application

Per eseguire l'applicazione, seguire questa procedura:To run this application, follow these steps:

  1. Abilitare il supporto HTTP sicuro nel file php.ini rimuovendo il commento dalla riga ;extension=php_openssl.dll, come descritto nel commento del codice.Enable secure HTTP support in your php.ini file by uncommenting the ;extension=php_openssl.dll line, as described in the code comment.
  2. Creare un nuovo progetto PHP nell'ambiente di sviluppo integrato o nell'editor preferito.Create a new PHP project in your favorite IDE or editor.
  3. Aggiungere il codice riportato di seguito.Add the code provided below.
  4. Sostituire il valore di accessKey con una chiave di accesso valida per la sottoscrizione.Replace the accessKey value with an access key valid for your subscription.
  5. È possibile usare l'endpoint globale nel codice seguente o l'endpoint del sottodominio personalizzato visualizzato nel portale di Azure per la risorsa.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. Eseguire il programma.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);
?>

Risposta JSON di esempioExample JSON response

Viene restituita una risposta con esito positivo in formato JSON, come illustrato nell'esempio seguente: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"
      }
   ]
}

Passaggi successiviNext steps