使ってみよう! Bing API/SDK

第19回 使ってみよう! Bing API──jQuery編(1)

この記事を読むのに必要な時間:およそ 6 分

はじめに

これまでの連載では地図サービスのBing Maps関連のAPI/SDKを紹介してきましたが,今回はWebサイトの検索を可能にするBing APIを使ってみましょう。連載では網羅的にAPIを紹介するのではなく,JavaScriptのライブラリーのjQueryを使用して,APIの利用サンプルを紹介します。なお,jQueryについての説明は行いません。

Bing APIを利用すると,検索サービスのBingと同質の検索結果を得ることができます。ただし,Bingは日々 新たな機能が追加され,多様なサービスと連携しているため,APIの利用だけでは同等のものは作成できません。また,APIのアップデートは残念ながら長い間 更新されていません。そのため,現在のBingサービスと機能が一致していない部分もあります。一方,リクエスト数に上限がない※1など特長がありますので,アプリケーション開発にうまく活用してみてください。

今回の内容は,使ってみよう! Windows Live SDK/API第25回で紹介しているLive Search API 2.0とも関連しています。Live Search APIは,Bingがリリースされる前に提供されていたAPIで,その内容は現在のBing APIとほぼ変わりありません。現在でも参考になると思いますので,より詳しく知りたい方は,こちらの記事とMSDN Libraryを参照してください。

※1

同一IPアドレスからは1秒間に7回未満。それ以上はMicrosoftにコンタクトを取る必要があります。また結果の利用用途や表示方法には制限があります。詳しくは利用規約を確認してください。

Bing API

Bing APIでは,JSONXML形式,およびSOAPでの3種類の呼び出し方法が用意されています。今回はJavaScriptから利用が便利なJSON形式のデータを使用します。

APIによる情報の取得は,Webサイトの検索結果だけでなく,

  • モバイル向けのWebサイトの検索
  • 画像の検索
  • 動画の検索

なども可能です。

また,検索結果を改善や効果的にするために

  • キーワードの修正候補や
  • 関連キーワード

の取得もできます。

これら以外にも,ニュースやインスタントアンサーと呼ばれる百科事典などからの情報の検索,位置情報から電話帳検索,機械翻訳といった機能もBing APIで利用できます。ただし,日本・日本語では利用できなかったり,最新のBingサービスとAPIで提供されている機能に差異があったりします。

Application IDの作成

Bing APIを利用するにあたり,Application ID(AppID)を作成する必要があります。AppIDはAPI呼出し時に使用します。あらかじめ作成しておきましょう。これまでの連載で使用してきたBing Maps Keyとは異なりますので注意してください。

AppID作成は,Bing Developer Center図1にアクセスし,APIを利用するアプリケーションを登録することで行います。

図1 AppIDの作成

図1 AppIDの作成

必要な項目を入力し,利用規約を確認後,⁠Agree]ボタンをクリックし,AppIDを得られます。IDは16進数の文字列です。

Webサイトの検索

それでは,実際にAPIを呼び出してみましょう。APIの利用は非常に簡単です。JSON形式で検索結果を得る場合,次のようなURLにアクセスするだけです。

  • http://api.bing.net/json.aspx?
      AppId=AppId&
      Version=2.2&
      Market=ja-JP&
      Query=Windows&
      Sources=Web&
      Web.Count=2&
      Web.Offset=0

各パラメーターは次の通りです。

名前 説明
AppID AppID(必須)
Version APIのバージョン(現在は2.2)
Market 言語・地域の指定(en-USなど)
Query 検索クエリー(必須)
Sources 検索対象(必須)
Web, Image, Video, RelatedSearch, Spellなど
Web.Count 取得する件数(Webの場合,最大50)
Web.Offset 取得する位置(10の場合,結果の11番目から取得。最大1000)

このほかにもパラメーターはいくつか用意されていますが,とりあえず今はこれだけでよいでしょう。

URLにアクセスすると次のようなJSON形式の結果が得られます。簡単ですね。内容は直感でわかるのではないかと思います。ちなみにURL内のjson.aspxをxml.aspxに変更するとXML形式で結果が得られます。

{
    "SearchResponse": {
        "Query": {
            "SearchTerms": "windows"
        }, 
        "Version": "2.2", 
        "Web": {
            "Offset": 0, 
            "Results": [
                {
                    "CacheUrl": "http://cc.bingj.com/cache.aspx?q=windows&d=1&mkt=ja-JP&w=1", 
                    "Description": "Windows 製品とテクノロジの公式ホーム ページです。 (略)", 
                    "DisplayUrl": "www.microsoft.com/japan/windows/default.mspx", 
                    "Title": "Microsoft Windows ホーム ページ", 
                    "Url": "http://www.microsoft.com/japan/windows/default.mspx"
                }, 
                {
                    "CacheUrl": "http://cc.bingj.com/cache.aspx?q=windows&d=5044954658701345&mkt=ja-JP&w=69e7b6a,49d6665a", 
                    "DateTime": "2011-03-05T08:36:00Z", 
                    "Description": "Windows 製品公式ホーム ページです。 (略)", 
                    "DisplayUrl": "www.microsoft.com/japan/windows/default.asp", 
                    "Title": "Windows ホーム: Windows 製品情報,機能比較 ...", 
                    "Url": "http://www.microsoft.com/japan/windows/default.aspx"
                }
            ], 
            "Total": 414000000
        }
    }
}

SourcesにWebを指定した場合,SearchResponse.Web.Results配列から各Webサイトの情報が得られます。

パラメーターに誤りなどがあり,エラーが発生した場合は,次のような結果を得ます。

{
    "SearchResponse": {
        "Errors": [
            {
                "Code": 1002, 
                "HelpUrl": "http://msdn.microsoft.com/en-us/library/dd251042.aspx", 
                "Message": "Parameter has invalid value.", 
                "Parameter": "SearchRequest.Web.Count", 
                "Value": "100"
            }
        ], 
        "Query": {
            "SearchTerms": "windows"
        }, 
        "Version": "2.2"
    }
}

著者プロフィール

松江祐輔(まつえゆうすけ)

日本システムウエア株式会社 勤務。現在,ハードウェア設計・検証業務を担当。大学生・大学院生時代はベンチャー企業 有限会社ミレニアムシステムズにプログラマーとして従事。趣味はプログラミング。好きな言語はVisual Basic。Microsoft MVP for Windows Live Platform(Jul 2010 - Jun 2011),Windows Live(Jul 2011 - Jun 2013)。

URL:http://katamari.jp

コメント

コメントの記入