クイック スタート:C# を使用して Bing Custom Search エンドポイントを呼び出すQuickstart: Call your Bing Custom Search endpoint using C#

警告

Bing Search API は、Cognitive Services から Bing Search Services に移行されます。Bing Search APIs are moving from Cognitive Services to Bing Search Services. 2020 年 10 月 30 日 以降、Bing Search の新しいインスタンスは、こちらに記載されているプロセスに従ってプロビジョニングする必要があります。Starting October 30, 2020, any new instances of Bing Search need to be provisioned following the process documented here. Cognitive Services を使用してプロビジョニングされた Bing Search API は、次の 3 年間、または Enterprise Agreement の終わり (どちらか先に発生した方) までサポートされます。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. 移行手順については、Bing Search Services に関するページを参照してください。For migration instructions, see Bing Search Services.

このクイックスタートでは、Bing Custom Search インスタンスに検索結果を要求する方法を学習します。Use this quickstart to learn how to request search results from your Bing Custom Search instance. このアプリケーションは C# で記述されていますが、Bing Custom Search API はほとんどのプログラミング言語と互換性のある RESTful Web サービスです。Although this application is written in C#, the Bing Custom Search API is a RESTful web service compatible with most programming languages. このサンプルのソース コードは、GitHub で入手できます。The source code for this sample is available on GitHub.

前提条件Prerequisites

  • Bing Custom Search インスタンス。A Bing Custom Search instance. 詳細については、「クイック スタート: 最初の Bing Custom Search インスタンスの作成」を参照してください。For more information, see Quickstart: Create your first Bing Custom Search instance.

  • Microsoft .NET CoreMicrosoft .NET Core.

  • Visual Studio 2019 以降の任意のエディション。Any edition of Visual Studio 2019 or later.

  • Linux/macOS を使用している場合、このアプリケーションは Mono を使用して実行できます。If you're using Linux/MacOS, this application can be run using Mono.

  • Bing Custom Search の NuGet パッケージThe Bing Custom Search NuGet package.

    Visual Studio にこのパッケージをインストールするには:To install this package in Visual Studio:

    1. ソリューション エクスプローラー で目的のプロジェクトを右クリックし、 [NuGet パッケージの管理] を選択します。Right-click your project in Solution Explorer, and then select Manage NuGet Packages.
    2. Microsoft.Azure.CognitiveServices.Search.CustomSearch を検索して選択し、このパッケージをインストールします。Search for and select Microsoft.Azure.CognitiveServices.Search.CustomSearch, and then install the package.

    Bing Custom Search NuGet パッケージをインストールすると、次のパッケージも Visual Studio によってインストールされます。When you install the Bing Custom Search NuGet package, Visual Studio also installs the following packages:

    • Microsoft.Rest.ClientRuntimeMicrosoft.Rest.ClientRuntime
    • Microsoft.Rest.ClientRuntime.AzureMicrosoft.Rest.ClientRuntime.Azure
    • Newtonsoft.JsonNewtonsoft.Json

Azure リソースを作成するCreate an Azure resource

次のいずれかの Azure リソースを作成して、Bing Custom Search API の使用を開始します。Start using the Bing Custom Search API by creating one of the following Azure resources.

Bing Custom Search リソースBing Custom Search resource

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。Available through the Azure portal until you delete the resource.
  • Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。Use the free pricing tier to try the service, and upgrade later to a paid tier for production.

マルチサービス リソースMulti-Service resource

  • ご自身でリソースを削除するまでは Azure portal からご利用いただけます。Available through the Azure portal until you delete the resource.
  • 複数の Cognitive Services 全体で同じキーとエンドポイントをアプリケーションに使用します。Use the same key and endpoint for your applications, across multiple Cognitive Services.

アプリケーションを作成して初期化するCreate and initialize the application

  1. Visual Studio で、新しい C# コンソール アプリケーションを作成します。Create a new C# console application in Visual Studio. 次に、次のパッケージを目的のプロジェクトに追加します。Then, add the following packages to your project:

    using System;
    using System.Net.Http;
    using System.Web;
    using Newtonsoft.Json;
    
  2. Bing Custom Search API から返された検索結果を格納する次のクラスを作成します。Create the following classes to store the search results returned by the Bing Custom Search API:

    public class BingCustomSearchResponse {        
        public string _type{ get; set; }            
        public WebPages webPages { get; set; }
    }
    
    public class WebPages {
        public string webSearchUrl { get; set; }
        public int totalEstimatedMatches { get; set; }
        public WebPage[] value { get; set; }        
    }
    
    public class WebPage {
        public string name { get; set; }
        public string url { get; set; }
        public string displayUrl { get; set; }
        public string snippet { get; set; }
        public DateTime dateLastCrawled { get; set; }
        public string cachedPageUrl { get; set; }
    }
    
  3. プロジェクトのメイン メソッドで、Bing Custom Search API のサブスクリプション キー、検索インスタンスのカスタム構成 ID、検索語句に使用する次の各変数を作成します。In the main method of your project, create the following variables for your Bing Custom Search API subscription key, search instance's custom configuration ID, and search term:

    var subscriptionKey = "YOUR-SUBSCRIPTION-KEY";
    var customConfigId = "YOUR-CUSTOM-CONFIG-ID";
    var searchTerm = args.Length > 0 ? args[0]:"microsoft";
    
  4. 検索語句を q= クエリ パラメーターに追加し、検索インスタンスのカスタム構成 ID を customconfig= パラメーターに追加して、要求 URL を作成します。Construct the request URL by appending your search term to the q= query parameter, and your search instance's custom configuration ID to the customconfig= parameter. パラメーターの区切りには、アンパサンド (&) を使用します。Separate the parameters with an ampersand (&). url 変数値には、次のコードのグローバル エンドポイントを使用するか、Azure portal に表示される、対象のリソースのカスタム サブドメイン エンドポイントを使用することができます。For the url variable value, you can use the global endpoint in the following code, or use the custom subdomain endpoint displayed in the Azure portal for your resource.

    var url = "https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?" +
                "q=" + searchTerm + "&" +
                "customconfig=" + customConfigId;
    

検索要求の送信と受信Send and receive a search request

  1. 要求のクライアントを作成し、Ocp-Apim-Subscription-Key ヘッダーにサブスクリプション キーを追加します。Create a request client, and add your subscription key to the Ocp-Apim-Subscription-Key header.

    var client = new HttpClient();
    client.DefaultRequestHeaders.Add("Ocp-Apim-Subscription-Key", subscriptionKey);
    
  2. 検索要求を実行し、応答を JSON オブジェクトとして取得します。Perform the search request and get the response as a JSON object.

    var httpResponseMessage = client.GetAsync(url).Result;
    var responseContent = httpResponseMessage.Content.ReadAsStringAsync().Result;
    BingCustomSearchResponse response = JsonConvert.DeserializeObject<BingCustomSearchResponse>(responseContent);
    

結果の処理と表示Process and view the results

  • 応答オブジェクトを反復処理して、それぞれの検索結果についての情報 (名前、URL、Web ページが最後にクロールされた日付など) を表示します。Iterate over the response object to display information about each search result, including its name, url, and the date the webpage was last crawled.

    for(int i = 0; i < response.webPages.value.Length; i++) {                
        var webPage = response.webPages.value[i];
    
        Console.WriteLine("name: " + webPage.name);
        Console.WriteLine("url: " + webPage.url);                
        Console.WriteLine("displayUrl: " + webPage.displayUrl);
        Console.WriteLine("snippet: " + webPage.snippet);
        Console.WriteLine("dateLastCrawled: " + webPage.dateLastCrawled);
        Console.WriteLine();
    }
    Console.WriteLine("Press any key to exit...");
    Console.ReadKey();
    

次のステップNext steps