Inicio rápido: Envío de una solicitud de búsqueda a Bing Entity Search REST API con PHPQuickstart: Send a search request to the Bing Entity Search REST API using PHP

Use este inicio rápido para realizar la primera llamada a Bing Entity Search API y ver la respuesta JSON.Use this quickstart to make your first call to the Bing Entity Search API and view the JSON response. Esta sencilla aplicación de PHP envía una consulta de búsqueda de noticias a la API y muestra la respuesta.This simple PHP application sends a news search query to the API, and displays the response.

Si bien esta aplicación está escrita en PHP, la API es un servicio web RESTful compatible con la mayoría de los lenguajes de programación.While this application is written in PHP, the API is a RESTful Web service compatible with most programming languages.

Requisitos previosPrerequisites

Debe tener una cuenta de Cognitive Services API con acceso a Bing Search APIs.You must have a Cognitive Services API account with access to the Bing Search APIs. Si no tiene una suscripción de Azure, puede crear una cuenta gratuita.If you don't have an Azure subscription, you can create an account for free. Antes de continuar, necesitará la clave de acceso que se le proporcionó al activar la versión de evaluación gratuita o puede usar una clave de suscripción de pago desde el panel de Azure.Before continuing, You will need the access key provided after activating your free trial, or a paid subscription key from your Azure dashboard.

Entidades de búsquedaSearch entities

Para ejecutar esta aplicación, siga estos pasos.To run this application, follow these steps.

  1. Cree un nuevo proyecto de PHP en su IDE favorito.Create a new PHP project in your favorite IDE.
  2. Agregue el código que se proporciona a continuación.Add the code provided below.
  3. Reemplace el valor key por una clave de acceso válida para la suscripción.Replace the key value with an access key valid for your subscription.
  4. Ejecute el programa.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 subscriptionKey string value with your valid subscription key.
$subscriptionKey = 'ENTER KEY HERE';

$host = "https://api.cognitive.microsoft.com";
$path = "/bing/v7.0/entities";

$mkt = "en-US";
$query = "italian restaurants near me";

function search ($host, $path, $key, $mkt, $query) {

    $params = '?mkt=' . $mkt . '&q=' . urlencode ($query);

    $headers = "Ocp-Apim-Subscription-Key: $key\r\n";

    // NOTE: Use the key 'http' even if you are making an HTTPS request. See:
    // https://php.net/manual/en/function.stream-context-create.php
    $options = array (
        'http' => array (
            'header' => $headers,
            'method' => 'GET'
        )
    );
    $context  = stream_context_create ($options);
    $result = file_get_contents ($host . $path . $params, false, $context);
    return $result;
}

$result = search ($host, $path, $subscriptionKey, $mkt, $query);

echo json_encode (json_decode ($result), JSON_PRETTY_PRINT);
?>

RespuestaResponse

Se devuelve una respuesta correcta en JSON, como se muestra en el siguiente ejemplo:A successful response is returned in JSON, as shown in the following example:

{
  "_type": "SearchResponse",
  "queryContext": {
    "originalQuery": "italian restaurant near me",
    "askUserForLocation": true
  },
  "places": {
    "value": [
      {
        "_type": "LocalBusiness",
        "webSearchUrl": "https://www.bing.com/search?q=sinful+bakery&filters=local...",
        "name": "Liberty's Delightful Sinful Bakery & Cafe",
        "url": "https://www.contoso.com/",
        "entityPresentationInfo": {
          "entityScenario": "ListItem",
          "entityTypeHints": [
            "Place",
            "LocalBusiness"
          ]
        },
        "address": {
          "addressLocality": "Seattle",
          "addressRegion": "WA",
          "postalCode": "98112",
          "addressCountry": "US",
          "neighborhood": "Madison Park"
        },
        "telephone": "(800) 555-1212"
      },

      . . .
      {
        "_type": "Restaurant",
        "webSearchUrl": "https://www.bing.com/search?q=Pickles+and+Preserves...",
        "name": "Munson's Pickles and Preserves Farm",
        "url": "https://www.princi.com/",
        "entityPresentationInfo": {
          "entityScenario": "ListItem",
          "entityTypeHints": [
            "Place",
            "LocalBusiness",
            "Restaurant"
          ]
        },
        "address": {
          "addressLocality": "Seattle",
          "addressRegion": "WA",
          "postalCode": "98101",
          "addressCountry": "US",
          "neighborhood": "Capitol Hill"
        },
        "telephone": "(800) 555-1212"
      },
      
      . . .
    ]
  }
}

Pasos siguientesNext steps