Inicio rápido: Uso de la biblioteca cliente de Bing News Search

Advertencia

El 30 de octubre de 2020, las API de Bing Search se trasladaron de los servicios de Azure AI a los servicios de Bing Search. Esta documentación se proporciona solo como referencia. Para obtener documentación actualizada, consulte la documentación de Bing Search API. Para obtener instrucciones sobre cómo crear nuevos recursos de Azure para Bing Search, consulte el artículo sobre la creación de un recurso de Bing Search a través de Azure Marketplace.

Este inicio rápido para empezar a buscar noticias con la biblioteca cliente de Bing News Search para C#. Aunque Bing News Search tiene una API REST compatible con la mayoría de los lenguajes de programación, la biblioteca cliente proporciona una forma sencilla de integrar el servicio en sus aplicaciones. El código fuente de este ejemplo está disponible en GitHub.

Prerrequisitos

Para configurar una aplicación de consola con la biblioteca cliente de Bing News Search, vaya a la opción Manage NuGet Packages del Explorador de soluciones en Visual Studio. Agregue el paquete Microsoft.Azure.CognitiveServices.Search.NewsSearch.

Creación de un recurso de Azure

Comience a usar la API Bing News Search mediante la creación de uno de los recursos de Azure que se indican a continuación:

Recurso de Bing Search v7

  • Disponible en Azure Portal hasta que lo elimine.
  • Use el plan de tarifa gratuito para probar el servicio y actualícelo más adelante a un nivel de pago para producción.

Recurso de varios servicios

  • Disponible en Azure Portal hasta que lo elimine.
  • Utilice la misma clave y el mismo punto de conexión para sus aplicaciones en varios servicios de Azure AI.

Creación e inicialización de un proyecto

  1. Cree una solución de consola de C# en Visual Studio. Después, agregue lo siguiente en el archivo de código principal.

    using System;
    using System.Linq;
    using Microsoft.Azure.CognitiveServices.Search.NewsSearch;
    
  2. Cree una variable para la clave de API y un término de búsqueda y, a continuación, cree una instancia del cliente de búsqueda de noticias con ellos.

    var key = "YOUR-ACCESS-KEY";
    var searchTerm = "Quantum Computing";
    var client = new NewsSearchClient(new ApiKeyServiceClientCredentials(key));
    

Envío de una solicitud y análisis del resultado

  1. Use el cliente para enviar una solicitud de búsqueda al servicio Bing News Search:

    var newsResults = client.News.SearchAsync(query: searchTerm, market: "en-us", count: 10).Result;
    
  2. Si se devolvió algún resultado, analícelo:

    if (newsResults.Value.Count > 0)
    {
        var firstNewsResult = newsResults.Value[0];
    
        Console.WriteLine($"TotalEstimatedMatches value: {newsResults.TotalEstimatedMatches}");
        Console.WriteLine($"News result count: {newsResults.Value.Count}");
        Console.WriteLine($"First news name: {firstNewsResult.Name}");
        Console.WriteLine($"First news url: {firstNewsResult.Url}");
        Console.WriteLine($"First news description: {firstNewsResult.Description}");
        Console.WriteLine($"First news published time: {firstNewsResult.DatePublished}");
        Console.WriteLine($"First news provider: {firstNewsResult.Provider[0].Name}");
    }
    
    else
    {
        Console.WriteLine("Couldn't find news results!");
    }
    Console.WriteLine("Enter any key to exit...");
    Console.ReadKey();
    

Pasos siguientes

Este inicio rápido para empezar a buscar noticias con la biblioteca cliente de Bing News Search para Java. Aunque Bing News Search tiene una API REST compatible con la mayoría de los lenguajes de programación, la biblioteca cliente proporciona una forma sencilla de integrar el servicio en sus aplicaciones. El código fuente de este ejemplo está disponible en GitHub.

Prerrequisitos

Instale las dependencias de la biblioteca cliente de Bing News Search mediante Maven, Gradle o cualquier otro sistema de administración de dependencias. El archivo POM de Maven requiere la declaración siguiente:

    <dependencies>
    <dependency>
        <groupId>com.microsoft.azure.cognitiveservices</groupId>
        <artifactId>azure-cognitiveservices-newssearch</artifactId>
        <version>0.0.1-beta-SNAPSHOT</version>
    </dependency>
    </dependencies>

Creación de un recurso de Azure

Comience a usar la API Bing News Search mediante la creación de uno de los recursos de Azure que se indican a continuación:

Recurso de Bing Search v7

  • Disponible en Azure Portal hasta que lo elimine.
  • Use el plan de tarifa gratuito para probar el servicio y actualícelo más adelante a un nivel de pago para producción.

Recurso de varios servicios

  • Disponible en Azure Portal hasta que lo elimine.
  • Utilice la misma clave y el mismo punto de conexión para sus aplicaciones en varios servicios de Azure AI.

Creación e inicialización de un proyecto

Cree un proyecto de Java en su IDE o editor favorito e importe las bibliotecas siguientes.

import com.microsoft.azure.cognitiveservices.newssearch.*;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.NewsInner;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.NewsSearchAPIImpl;
import com.microsoft.azure.cognitiveservices.newssearch.implementation.TrendingTopicsInner;
import com.microsoft.rest.credentials.ServiceClientCredentials;
import okhttp3.Interceptor;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
import java.io.IOException;

Creación de un cliente de búsqueda y almacenamiento de credenciales

  1. Cree un método llamado getClient() que devuelve un nuevo cliente de búsqueda NewsSearchAPIImpl. Agregue el punto de conexión como primer parámetro del nuevo objeto NewsSearchAPIImpl y un nuevo objeto ServiceClientCredentials para almacenar las credenciales.

    public static NewsSearchAPIImpl getClient(final String subscriptionKey) {
        return new NewsSearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/",
                new ServiceClientCredentials() {
                });
    }
    
  2. Para crear el objeto ServiceClientCredentials, reemplace la función applyCredentialsFilter(). Pase OkHttpClient.Builder al método y use el método addNetworkInterceptor() del generador para crear las credenciales para la llamada a la biblioteca cliente.

    new ServiceClientCredentials() {
        @Override
        public void applyCredentialsFilter(OkHttpClient.Builder builder) {
            builder.addNetworkInterceptor(
                    new Interceptor() {
                        @Override
                        public Response intercept(Chain chain) throws IOException {
                            Request request = null;
                            Request original = chain.request();
                            // Request customization: add request headers.
                            Request.Builder requestBuilder = original.newBuilder()
                                    .addHeader("Ocp-Apim-Subscription-Key", subscriptionKey);
                            request = requestBuilder.build();
                            return chain.proceed(request);
                        }
                    });
        }
    });
    

Envío y recepción de una solicitud de búsqueda

  1. Cree un método que llame a getClient() y envíe una solicitud de búsqueda al servicio Bing News Search. Filtre la búsqueda por los parámetros market y count y, a continuación, imprima la información sobre el primer resultado de noticias: nombre, dirección URL, fecha de publicación, descripción, nombre del proveedor y número total de coincidencias estimadas para la búsqueda.

    public static void newsSearch(String subscriptionKey)
    {
        NewsSearchAPIImpl client = getClient(subscriptionKey);
        String searchTerm = "Quantum Computing";
    
        NewsInner newsResults = client.searchs().list(searchTerm, null, null, null,
                null, null, 100, null, "en-us",
                null, null, null, null, null,
                null, null);
    
        if (newsResults.value().size() > 0)
        {
            NewsArticle firstNewsResult = newsResults.value().get(0);
    
            System.out.println(String.format("TotalEstimatedMatches value: %d", newsResults.totalEstimatedMatches()));
            System.out.println(String.format("News result count: %d", newsResults.value().size()));
            System.out.println(String.format("First news name: %s", firstNewsResult.name()));
            System.out.println(String.format("First news url: %s", firstNewsResult.url()));
            System.out.println(String.format("First news description: %s", firstNewsResult.description()));
            System.out.println(String.format("First news published time: %s", firstNewsResult.datePublished()));
            System.out.println(String.format("First news provider: %s", firstNewsResult.provider().get(0).name()));
        }
        else
        {
            System.out.println("Couldn't find news results!");
        }
    
    }
    
    
  2. Agregue el método de búsqueda a un método main() para ejecutar el código.

    public static void main(String[] args) {
        String subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
        NewsSearchSDK.newsSearch(subscriptionKey);
    }
    

Pasos siguientes

Este inicio rápido para empezar a buscar noticias con la biblioteca cliente de Bing News Search para JavaScript. Aunque Bing News Search tiene una API REST compatible con la mayoría de los lenguajes de programación, la biblioteca cliente proporciona una forma sencilla de integrar el servicio en sus aplicaciones. El código fuente de este ejemplo está disponible en GitHub.

Prerrequisitos

  • La última versión de Node.js.
  • El SDK de Bing News Search para JavaScript.
    • Para instalarlo, ejecute npm install @azure/cognitiveservices-newssearch.
  • La clase CognitiveServicesCredentials del paquete @azure/ms-rest-azure-js para autenticar el cliente.
    • Para instalarlo, ejecute npm install @azure/ms-rest-azure-js.

Creación de un recurso de Azure

Comience a usar la API Bing News Search mediante la creación de uno de los recursos de Azure que se indican a continuación:

Recurso de Bing Search v7

  • Disponible en Azure Portal hasta que lo elimine.
  • Use el plan de tarifa gratuito para probar el servicio y actualícelo más adelante a un nivel de pago para producción.

Recurso de varios servicios

  • Disponible en Azure Portal hasta que lo elimine.
  • Utilice la misma clave y el mismo punto de conexión para sus aplicaciones en varios servicios de Azure AI.

Creación e inicialización de la aplicación

  1. Creación de una instancia de CognitiveServicesCredentials. Cree variables para el término de búsqueda y la clave de suscripción.

    const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
    let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY');
    let search_term = 'Winter Olympics'
    
  2. Cree una instancia del cliente:

    const NewsSearchAPIClient = require('@azure/cognitiveservices-newssearch');
    let client = new NewsSearchAPIClient(credentials);
    

Envío de una consulta de búsqueda

  1. Utilice el cliente para buscar un término de consulta, en este caso "Juegos olímpicos de invierno":

    client.newsOperations.search(search_term).then((result) => {
        console.log(result.value);
    }).catch((err) => {
        throw err;
    });
    

El código imprime result.value elementos en la consola sin analizar ningún texto. Los resultados, si hubiera por categoría, incluyen:

  • _type: 'NewsArticle'
  • _type: 'WebPage'
  • _type: 'VideoObject'
  • _type: 'ImageObject'

Pasos siguientes

Este inicio rápido para empezar a buscar noticias con la biblioteca cliente de Bing News Search para Python. Aunque Bing News Search tiene una API REST compatible con la mayoría de los lenguajes de programación, la biblioteca cliente proporciona una forma sencilla de integrar el servicio en sus aplicaciones. El código fuente de este ejemplo está disponible en GitHub.

Prerrequisitos

Se recomienda usar un entorno virtual para el desarrollo de Python. Puede instalar e inicializar el entorno virtual con el módulo venv. Debe instalar un módulo virtualenv para Python 2.7. Puede crear un entorno virtual con:

python -m venv mytestenv

Puede instalar las dependencias de la biblioteca cliente de Bing News Search con este comando:

python -m pip install azure-cognitiveservices-search-newssearch

Creación de un recurso de Azure

Comience a usar la API Bing News Search mediante la creación de uno de los recursos de Azure que se indican a continuación:

Recurso de Bing Search v7

  • Disponible en Azure Portal hasta que lo elimine.
  • Use el plan de tarifa gratuito para probar el servicio y actualícelo más adelante a un nivel de pago para producción.

Recurso de varios servicios

  • Disponible en Azure Portal hasta que lo elimine.
  • Utilice la misma clave y el mismo punto de conexión para sus aplicaciones en varios servicios de Azure AI.

Creación e inicialización de la aplicación

  1. Cree un archivo de Python en su IDE o editor favorito e importe las bibliotecas siguientes. Cree una variable para la clave de suscripción y el término de búsqueda.

    from azure.cognitiveservices.search.newssearch import NewsSearchClient
    from msrest.authentication import CognitiveServicesCredentials
    subscription_key = "YOUR-SUBSCRIPTION-KEY"
    endpoint = "YOUR-ENDPOINT"
    search_term = "Quantum Computing"
    

Inicialización del cliente y envío de una solicitud

  1. Crea una instancia de CognitiveServicesCredentials.

    client = NewsSearchClient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
    
  2. Envíe una consulta de búsqueda a News Search API y almacene la respuesta.

    news_result = client.news.search(query=search_term, market="en-us", count=10)
    

Análisis de la respuesta

Si se encuentran resultados de la búsqueda, imprima el primer resultado de la página web:

if news_result.value:
    first_news_result = news_result.value[0]
    print("Total estimated matches value: {}".format(
        news_result.total_estimated_matches))
    print("News result count: {}".format(len(news_result.value)))
    print("First news name: {}".format(first_news_result.name))
    print("First news url: {}".format(first_news_result.url))
    print("First news description: {}".format(first_news_result.description))
    print("First published time: {}".format(first_news_result.date_published))
    print("First news provider: {}".format(first_news_result.provider[0].name))
else:
    print("Didn't see any news result data..")

Pasos siguientes