クイック スタート:Bing News Search クライアント ライブラリを使用する

警告

2020 年 10 月 30 日に、Bing Search API は Azure AI サービスから Bing Search サービスに移行されました。 このドキュメントは、参考用としてのみ提供されています。 更新されたドキュメントについては、Bing search API のドキュメントを参照してください。 Bing 検索用の新しい Azure リソースを作成する手順については、「Azure Marketplace から Bing Search リソースを作成する」を参照してください。

このクイックスタートでは、Bing News Search の C# 用のクライアント ライブラリを使用してニュースの検索を開始します。 Bing News Search の REST API はほとんどのプログラミング言語に対応していますが、このクライアント ライブラリを使用すると、サービスをお使いのアプリケーションに簡単に統合することができます。 このサンプルのソース コードは、GitHub にあります。

前提条件

  • Visual Studio 2017 またはそれ以降の任意のエディション。

  • NuGet パッケージとして入手できる Json.NET フレームワーク。

  • Linux/macOS を使用している場合、このアプリケーションは Mono を使用して実行できます。

  • Bing News Search SDK NuGet パッケージ。 このパッケージをインストールすると、次のものもインストールされます。

    • Microsoft.Rest.ClientRuntime
    • Microsoft.Rest.ClientRuntime.Azure
    • Newtonsoft.Json

Bing News Search クライアント ライブラリを使用してコンソール アプリケーションを設定するには、Visual Studio のソリューション エクスプローラーで Manage NuGet Packages オプションを参照します。 Microsoft.Azure.CognitiveServices.Search.NewsSearch パッケージを追加します。

Azure リソースを作成する

次のいずれかの Azure リソースを作成して、Bing News Search API の使用を開始します。

Bing Search v7 リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。

マルチサービス リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。

プロジェクトの作成と初期化

  1. Visual Studio で、新しい C# コンソール ソリューションを作成します。 次に、メイン コード ファイルに次の内容を追加します。

    using System;
    using System.Linq;
    using Microsoft.Azure.CognitiveServices.Search.NewsSearch;
    
  2. API キーと検索語句の変数を作成し、それを使って News Search クライアントをインスタンス化します。

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

要求を送信して結果を解析する

  1. このクライアントを使用して Bing News Search サービスに検索要求を送信します。

    var newsResults = client.News.SearchAsync(query: searchTerm, market: "en-us", count: 10).Result;
    
  2. 結果が返された場合は、それを解析します。

    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();
    

次のステップ

このクイックスタートでは、Bing News Search の Java 用のクライアント ライブラリを使用してニュースの検索を開始します。 Bing News Search の REST API はほとんどのプログラミング言語に対応していますが、このクライアント ライブラリを使用すると、サービスをお使いのアプリケーションに簡単に統合することができます。 このサンプルのソース コードは、GitHub にあります。

前提条件

Maven、Gradle、または別の依存関係管理システムを使用して Bing News Search クライアント ライブラリの依存関係をインストールします。 Maven POM ファイルには、次の宣言が必要です。

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

Azure リソースを作成する

次のいずれかの Azure リソースを作成して、Bing News Search API の使用を開始します。

Bing Search v7 リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。

マルチサービス リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。

プロジェクトの作成と初期化

普段使用している IDE またはエディターで新しい Java プロジェクトを作成し、以下のライブラリをインポートします。

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;

検索クライアントの作成と資格情報の格納

  1. 新しい NewsSearchAPIImpl 検索クライアントを返す getClient() というメソッドを作成します。 新しい NewsSearchAPIImpl オブジェクトの第 1 パラメーターとしてエンドポイントを追加し、さらに資格情報を格納するための新しい ServiceClientCredentials オブジェクトを追加します。

    public static NewsSearchAPIImpl getClient(final String subscriptionKey) {
        return new NewsSearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/",
                new ServiceClientCredentials() {
                });
    }
    
  2. ServiceClientCredentials オブジェクトを作成するには、applyCredentialsFilter() 関数をオーバーライドします。 このメソッドに OkHttpClient.Builder を渡し、ビルダーの addNetworkInterceptor() メソッドを使用して、クライアント ライブラリ呼び出しのための資格情報を作成します。

    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);
                        }
                    });
        }
    });
    

検索要求の送信と受信

  1. getClient() を呼び出すメソッドを作成し、Bing News Search サービスに検索要求を送信します。 market パラメーターと count パラメーターで検索にフィルターを適用し、最初のニュース結果に関する情報 (名前、URL、公開日、説明、提供元の名前、検索の推定一致数の合計) を出力します。

    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. 検索メソッドを main() メソッドに追加してコードを実行します。

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

次のステップ

このクイックスタートでは、Bing News Search の JavaScript 用のクライアント ライブラリを使用してニュースの検索を開始します。 Bing News Search の REST API はほとんどのプログラミング言語に対応していますが、このクライアント ライブラリを使用すると、サービスをお使いのアプリケーションに簡単に統合することができます。 このサンプルのソース コードは、GitHub にあります。

前提条件

  • 最新バージョンの Node.js
  • Bing News Search SDK for JavaScript
    • インストールするには、npm install @azure/cognitiveservices-newssearch を実行します
  • クライアントを認証するための CognitiveServicesCredentials クラス (@azure/ms-rest-azure-js パッケージに含まれています)。
    • インストールするには、npm install @azure/ms-rest-azure-js を実行します

Azure リソースを作成する

次のいずれかの Azure リソースを作成して、Bing News Search API の使用を開始します。

Bing Search v7 リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。

マルチサービス リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。

アプリケーションを作成して初期化する

  1. CognitiveServicesCredentials のインスタンスを作成します。 サブスクリプション キーと検索用語の変数を作成します。

    const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
    let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY');
    let search_term = 'Winter Olympics'
    
  2. クライアントをインスタンス化します。

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

検索クエリを送信する

  1. クライアントを使用して検索語 (この場合は "Winter Olympics") を検索します。

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

このコードでは、テキストを解析せず、コンソールに result.value アイテムを出力します。 カテゴリ別の結果がある場合、その結果には次が含まれます。

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

次のステップ

このクイックスタートでは、Bing News Search の Python 用のクライアント ライブラリを使用してニュースの検索を開始します。 Bing News Search の REST API はほとんどのプログラミング言語に対応していますが、このクライアント ライブラリを使用すると、サービスをお使いのアプリケーションに簡単に統合することができます。 このサンプルのソース コードは、GitHub にあります。

前提条件

Python 開発用の仮想環境を使用することをお勧めします。 仮想環境のインストールと初期化は、venv モジュールを使用して行えます。 Python 2.7 向けの virtualenv をインストールする必要があります。 次のコマンドで仮想環境を作成できます。

python -m venv mytestenv

Bing News Search クライアント ライブラリの依存関係は、次のコマンドでインストールできます。

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

Azure リソースを作成する

次のいずれかの Azure リソースを作成して、Bing News Search API の使用を開始します。

Bing Search v7 リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。

マルチサービス リソース

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
  • 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。

アプリケーションを作成して初期化する

  1. 任意の IDE またはエディターで新しい Python ファイルを作成し、次のライブラリをインポートします。 サブスクリプション キーと検索語句の変数を作成します。

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

クライアントを初期化して要求を送信する

  1. CognitiveServicesCredentials のインスタンスを作成します。

    client = NewsSearchClient(endpoint=endpoint, credentials=CognitiveServicesCredentials(subscription_key))
    
  2. News Search API に検索クエリを送信して、応答を保存します。

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

応答を解析する

検索結果が見つかったら、最初の 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..")

次のステップ