SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine(コードジン) DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

ASP.NETで構築したWebサイトからFlickr.Netライブラリを使ってFlickrの画像にアクセスする

特定のFlickrユーザーの写真や、写真のコメントを表示

ダウンロード サンプルソース (60.7 KB)

写真の検索

 FlickrオブジェクトのPhotoSearchメソッドは、Flickr上の公開写真を検索し、結果を表示するページを返します。さまざまな検索オプションを指定できます。返される写真の1ページあたりの枚数、どのページのデータを取得するか、ユーザーやタグで絞り込むかどうか、などのオプションがあります。以下のコードは、Flickrに最も新しくアップロードされ、"Hawaii"というタグが付いている公開画像を100枚返します。

// C#: Create a Flickr object
Flickr flickr = new Flickr();

// Get 100 most recent pictures with the tag "Hawaii"
PhotoSearchOptions options = new PhotoSearchOptions();
options.PerPage = 100;
options.Tags = "Hawaii";

Photos searchResults = flickr.PhotosSearch(options);


' VB: Create a Flickr object
Dim flickr As New Flickr()

' Get 100 most recent pictures with the tag "Hawaii"
Dim options As New PhotoSearchOptions()
options.PerPage = 100
options.Tags = "Hawaii"

Dim searchResults As Photos = flickr.PhotosSearch(options)

 1ページに100枚(デフォルト)、"Hawaii"というタグが付いている写真、といった条件で検索を絞り込むには、PhotoSearchOptionsオブジェクトの関連プロパティを設定します。次に、FlickrクラスのPhotoSearchメソッドを呼び出して、PhotoSearchOptionsオブジェクトを渡します。PhotoSearchメソッドは、Photosオブジェクトを返します。このオブジェクトのPhotoCollectionプロパティは、検索で一致した100枚の写真それぞれの詳細(タイトル、URL、説明など)が含まれるコレクションです。

ユーザーのスクリーンネームとユーザーID

 Flickrでは、ユーザーはユーザーIDで一意に識別され、このIDは74068408@N00のような形式になっています。ユーザーはもっと分かりやすい「スクリーンネーム」を作ることもできます。スクリーンネームは、コメントを追加したユーザーを示すのにも使うことができます。スクリーンネームは、フォトストリームのURLに表示される名前と同じでなくてもかまいません。ユーザーのフォトストリームは「http://www.flickr.com/photos/nickname/」のようなURLになります。nicknameとスクリーンネームは同じものにすることが多いですが、必ずしも同じにする必要はありません。ただし、スクリーンネームは何度でも変更できますが、ニックネームは変更できません。

 特定のユーザーからの写真を検索するには、ユーザーIDを使って検索します。ユーザーのユーザーIDはスクリーンネームから取得でき、これを行うには、FlickrクラスのPeopleFindByUsername(screen_name)メソッドを使ってFoundUserオブジェクトを取得します。FoundUserオブジェクトには、UserIDプロパティとUsernameプロパティがあります。このとき、スクリーンネームが見つからないと、このメソッドはFlickrApiException例外を発生させるので注意してください。また、PeopleFindByUsername(screen_name)メソッドは、パブリック検索から隠すことをアカウントに設定していないユーザーの情報しか返しません。

 以下のコードは、スクリーンネームしかわかっていないユーザーのユーザーIDを取得する方法を示しています。形式的に、筆者のFlickrスクリーンネームscott_mitchellでユーザーIDを検索します。このコードはTry ... Catchブロックになっており、FlickrApiException例外を処理しています。この例外が発生するのは、指定したスクリーンネームが見つからなかったとき、または対象ユーザーがパブリック検索に情報を公開していないときです。Try ... Catchブロックでこれを処理しない場合は、無効なスクリーンネームを検索するとイエロースクリーンでエラーになります。

// C#: Look up the User ID
Flickr flickr = new Flickr();

string flickrUserId = string.Empty;
try
{
   FoundUser userInfo = 
   flickr.PeopleFindByUsername("scott_mitchell");
   flickrUserId = userInfo.UserId;
}
catch (FlickrApiException)
{
   // Screen name not found...
   ...
}


' VB: Look up the User ID
Dim flickr As New Flickr()

Dim flickrUserId As String = String.Empty
Try
   Dim userInfo As FoundUser = 
   flickr.PeopleFindByUsername("scott_mitchell")
   flickrUserId = userInfo.UserId
Catch ex As FlickrApiException
   ' Screen name not found...
   ...
End Try

次のページ
全体を組み立てる

この記事は参考になりましたか?

japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Mitchell(Scott Mitchell)

http://www.4guysfromrolla.com/ScottMitchell.shtml

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/4510 2009/11/12 14:00

おすすめ

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー