使ってみよう! Windows Live SDK/API

第3回 Tafiti Search Visualization

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

Web.Configの編集

Visual Web Developer 2008のプロジェクトに戻り,プロジェクト内にあるWeb.Configファイルを編集します。

Web Authenticationサービス用に取得したApplication IDとSecret Keyを以下の部分に記述します。

<add key="wll_appid" value="取得したApplication ID"/>
<add key="wll_secret" value="設定したSecret Key"/>
<add key="wll_securityalgorithm" value="wsignin1.0"/>

Live Search APIのApplication IDも記述します。取得方法は本連載の第1回目を参照してください。

<add key="LiveSearchAppID" value="取得したApplication ID"/>
<add key="LiveSearch.webservices" value="http://soap.search.msn.com/webservices.asmx"/>

データベースの設定を記述します。Data Sourceの部分のサーバ名を変更します。⁠.\SQLEXPRESS」でも問題ありません。

<connectionStrings>
  <add name="(略)" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Tafiti;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

以上で最低限の設定は完了です。ほかの設定項目についてはWeb.Config内のコメントとDeployment Guideを参照してください。

Tafitiの実行

設定が終了したらWebサイトを表示してみましょう。ソリューションエクスプローラ内のDefault.aspxを右クリックし「ブラウザで表示」を選択します。うまく表示されたでしょうか? 検索もしてみてください。残念ながら日本語表示はうまくできませんが……※4⁠。

Shelf機能を確認してみます。左上の「sign in」のリンクからLive IDを使ってサインインします。その後,右上の「Add Stack」をクリックし新しいshelfを作ります。検索結果をドラッグ&ドロップでshelfに入れることができるようになります図5⁠。Webサイトを閉じても再びサインインすればshelfが復元されます。

図5 Shelf

図5 Shelf

ほかの機能や使い方についてはニュースサイトの紹介やTafiti Walkthroughを参考にしてください。

Live Search APIで画像検索

ここでTafitiから少し離れます。Live Search APIで画像を検索する場合はSourceRequestオブジェクトのSourceプロパティにSourceType.Imageを指定します。また,ResultsプロパティにResultFieldMask.Imageを含める必要があります。

Dim sourceRequest As New SourceRequest
sourceRequest.Source = SourceType.Image
sourceRequest.ResultFields = ResultFieldMask.Url Or ResultFieldMask.Image

画像情報の結果はResultオブジェクトのImageプロパティに入っています。ImageプロパティはImage型(System.Drawing名前空間のものではなくVisual Studioにより生成されたクラスです)になっています。

Imageクラスのプロパティには次のものがあります。

ImageFileSize:
画像ファイルのバイト数
ImageWidth:
画像の横幅のピクセル数
ImageHeight:
画像の縦幅のピクセル数
ImageURL:
画像のURL
ThumbnailFileSize:
サムネイル画像ファイルのバイト数
ThumbnailWidth:
サムネイル画像の横幅のピクセル数
ThumbnailHeight:
サムネイル画像の縦幅のピクセル数
ThumbnailURL:
サムネイル画像のURL

上記プロパティに加えて,各プロパティ名の末尾にSpecifiedが付いたプロパティがあります(ImageFileSizeSpecifiedなど⁠⁠。Specifiedの付いたプロパティの値がTrueだった場合のみ上記プロパティに値が格納されています。

結果画像の含まれるURLについては,ResultオブジェクトのUrlプロパティに入っています。画像のファイル名のみ取得したい場合はTitleプロパティを使います(ResultFieldMask.Titleの指定が必要⁠⁠。

※4

Silverlightの問題です。執筆時点では最新のSliverlight 2 Beta1をインストールすると正しく表示されます。

著者プロフィール

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

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

URL:http://katamari.jp