クイック スタート:Node.js を使用して Bing Custom Search エンドポイントを呼び出す
警告
2020 年 10 月 30 日に、Bing Search API は Azure AI サービスから Bing Search サービスに移行されました。 このドキュメントは、参考用としてのみ提供されています。 更新されたドキュメントについては、Bing search API のドキュメントを参照してください。 Bing 検索用の新しい Azure リソースを作成する手順については、「Azure Marketplace から Bing Search リソースを作成する」を参照してください。
このクイックスタートでは、Bing Custom Search インスタンスに検索結果を要求する方法を学習します。 このアプリケーションは JavaScript で記述されていますが、Bing Custom Search API はほとんどのプログラミング言語と互換性のある RESTful Web サービスです。 このサンプルのソース コードは、GitHub で入手できます。
前提条件
Bing Custom Search インスタンス。 詳細については、「クイック スタート: 最初の Bing Custom Search インスタンスの作成」を参照してください。
Azure リソースを作成する
次のいずれかの Azure リソースを作成して、Bing Custom Search API の使用を開始します。
Bing Custom Search リソース
- ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
- Free 価格レベルを使ってサービスを試用し、後から運用環境用の有料レベルにアップグレードします。
マルチサービス リソース
- ご自身でリソースを削除するまでは Azure portal からご利用いただけます。
- 複数の Azure AI サービス全体で同じキーとエンドポイントをアプリケーションに使用します。
アプリケーションを作成して初期化する
任意の IDE またはエディターで新しい JavaScript ファイルを作成し、requests ライブラリの
require()
ステートメントを追加します。 サブスクリプション キー、カスタム構成 ID、および検索語句のための変数を作成します。var request = require("request"); var subscriptionKey = 'YOUR-SUBSCRIPTION-KEY'; var customConfigId = 'YOUR-CUSTOM-CONFIG-ID'; var searchTerm = 'microsoft';
検索要求の送信と受信
要求に含めて送信する情報を格納する変数を作成します。 検索語句を
q=
クエリ パラメーターに追加し、検索インスタンスのカスタム構成 ID をcustomconfig=
パラメーターに追加して、要求 URL を作成します。 パラメーターの区切りには、アンパサンド (&
) を使用します。 次のコードのグローバル エンドポイントか、Azure portal に表示される、対象のリソースのカスタム サブドメイン エンドポイントを使用できます。var info = { url: 'https://api.cognitive.microsoft.com/bingcustomsearch/v7.0/search?' + 'q=' + searchTerm + "&" + 'customconfig=' + customConfigId, headers: { 'Ocp-Apim-Subscription-Key' : subscriptionKey } }
JavaScript request ライブラリを使用して、検索要求を Bing Custom Search インスタンスに送信し、その結果についての情報 (名前、URL、Web ページが最後にクロールされた日付など) を出力します。
request(info, function(error, response, body){ var searchResponse = JSON.parse(body); for(var i = 0; i < searchResponse.webPages.value.length; ++i){ var webPage = searchResponse.webPages.value[i]; console.log('name: ' + webPage.name); console.log('url: ' + webPage.url); console.log('displayUrl: ' + webPage.displayUrl); console.log('snippet: ' + webPage.snippet); console.log('dateLastCrawled: ' + webPage.dateLastCrawled); console.log(); }