Snabb start: utföra en nyhets sökning med PHP och Nyhetssökning i Bing REST APIQuickstart: Perform a news search using PHP and the Bing News Search REST API

Varning

API:er för Bing-sökresultat flyttas från Cognitive Services till Bing-sökning tjänster.Bing Search APIs are moving from Cognitive Services to Bing Search Services. Från och med den 30 oktober 2020 måste alla nya instanser av Bing-sökning tillhandahållas enligt processen som dokumenteras här.Starting October 30, 2020, any new instances of Bing Search need to be provisioned following the process documented here. API:er för Bing-sökresultat som har tillhandahållits med hjälp av Cognitive Services kommer att stödjas under de kommande tre åren eller tills Enterprise-avtals slut, beroende på vilket som sker först.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. Instruktioner för migrering finns i Bing-sökning Services.For migration instructions, see Bing Search Services.

Använd den här snabb starten för att göra ditt första anrop till API för nyhetssökning i Bing.Use this quickstart to make your first call to the Bing News Search API. Detta enkla PHP-program skickar en Sök fråga till API: et och visar JSON-svaret.This simple PHP application sends a search query to the API and displays the JSON response.

Även om det här programmet är skrivet i PHP är API: et en RESTful-webbtjänst som är kompatibel med de flesta programmeringsspråk.Although this application is written in PHP, the API is a RESTful Web service compatible with most programming languages.

FörutsättningarPrerequisites

  • PHP 5.6 eller senarePHP 5.6 or later

Skapa en Azure-resursCreate an Azure resource

Börja använda API för nyhetssökning i Bing genom att skapa någon av följande Azure-resurser:Start using the Bing News Search API by creating one of the following Azure resources:

Bing-sökning v7-resursBing Search v7 resource

  • Tillgängligt via Azure Portal tills du tar bort resursen.Available through the Azure portal until you delete the resource.
  • Använd den kostnads fria pris nivån för att testa tjänsten och uppgradera senare till en betald nivå för produktion.Use the free pricing tier to try the service, and upgrade later to a paid tier for production.

Resurs för flera tjänsterMulti-service resource

  • Tillgängligt via Azure Portal tills du tar bort resursen.Available through the Azure portal until you delete the resource.
  • Använd samma nyckel och slut punkt för dina program i flera Cognitive Services.Use the same key and endpoint for your applications, across multiple Cognitive Services.

Mer information finns i Cognitive Services priser – Bing-sökning API.For more information, see Cognitive Services Pricing - Bing Search API.

Kör programmetRun the application

Följ dessa steg om du vill köra programmet:To run this application, follow these steps:

  1. Aktivera säkert HTTP-stöd i php.ini filen genom att ta bort kommentaren till ;extension=php_openssl.dll raden, enligt beskrivningen i kod kommentaren.Enable secure HTTP support in your php.ini file by uncommenting the ;extension=php_openssl.dll line, as described in the code comment.
  2. Skapa ett nytt PHP-projekt i valfri IDE eller redigeringsprogram.Create a new PHP project in your favorite IDE or editor.
  3. Lägg till koden nedan.Add the code provided below.
  4. Ersätt värdet accessKey med en giltig åtkomstnyckel för din prenumeration.Replace the accessKey value with an access key valid for your subscription.
  5. Du kan använda den globala slut punkten i följande kod eller använda den anpassade slut domänen som visas i Azure Portal för din resurs.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. Kör programmet.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);
?>

Exempel på JSON-svarExample JSON response

Ett svar som anger att åtgärden lyckades returneras i JSON, som du ser i följande exempel: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"
      }
   ]
}

Nästa stegNext steps