SHOEISHA iD

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

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

japan.internet.com翻訳記事

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

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

  • このエントリーをはてなブックマークに追加

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

 この記事では、Sam Judson氏作のFlickr.NetというオープンソースFlickr APIライブラリについて説明します。今回はこのライブラリを使用し、特定のFlickrユーザーの写真をランダムに選択して表示するASP.NET Webサイトを作成する方法と、特定の写真のコメント(コメントがある場合)を表示する方法について解説していきます。

  • このエントリーをはてなブックマークに追加

はじめに

 Flickrは、人気の高い写真共有Webサイトです。Web 2.0やソーシャル系のWebサイトの多くがそうであるように、Flickrもプログラミングインターフェースを提供しており、これによって、他のプログラムやWebサイトから、Flickrの写真、コメント、グループ、タグなどのデータを表示したり操作したりできます。筆者が最近作業を進めているあるWebサイトでは、ユーザーは写真や経歴や連絡先をアップロードしてホームページをカスタマイズでき、Flickrなど他のソーシャルWebサイトとも連携できます。具体的には、Flickrのスクリーンネームを指定すれば、Flickrで公開している写真をこのサイトのカスタムホームページにランダムに表示できます。

 FlickrのAPIには多数のメソッドが含まれており、例えば、特定のFlickrユーザーの情報を返すflickr.people.findByUsernameや、特定の写真の情報を返すflickr.photos.getInfoなどがあります。このようなメソッドを呼び出すには、所定の書式のメッセージをFlickr API URLに送信します。結果はFlickr API URLから指定の書式で返されます。詳細については、Flickr APIのドキュメントを参照ください。

 ASP.NETを使ったWebサイトからFlickrにアクセスしたいが、低水準の操作にはあまり興味がない、という人には、Flickr APIへのアクセスに便利なオープンソース.NETライブラリがあります。これらのライブラリをASP.NETアプリケーションから利用すれば、Flickr APIの詳細を知らなくても、低水準の書式化やメッセージ送信はライブラリに任せることができます。

 この記事では、Sam Judson氏作のFlickr.NetというオープンソースFlickr APIライブラリについて説明します。前述の筆者のプロジェクトでもこのライブラリを利用しました。ここでは、特定のFlickrユーザーの写真をランダムに選択して表示するASP.NET Webサイトを作成する方法と、特定の写真のコメント(コメントがある場合)を表示する方法について解説します。また、Visual Basic版とC#版のサンプルコード一式を、この記事の冒頭のリンクからダウンロードできるサンプルファイルに収録しています。では始めましょう。

Flickr APIの概要

 Flickr APIは、アプリケーション開発者がFlickr上のデータ(写真、ユーザー、コメント、ブログ、グループなど)を操作するために用意されています。Flickr APIを使用するには「APIキー」が必要です。このキーは、「Flickr API Keys page」から無料で入手できます。

 Flickr上のデータには、各種許可設定とアクセスレベルが指定されています。例えば、Flickrアルバムに写真を追加したユーザーは、自分の写真を、公開、非公開、友人や家族といった限定ユーザーに公開、などに指定できます。また、自分の写真やユーザーアカウント情報をパブリック検索できないようにアカウントを設定することもできます。Flickr APIは、公開データと非公開データの両方へのアクセスを提供しています。ユーザーの非公開データにアクセスしたり、公開または非公開のデータを編集したりするには、アプリケーションからそのユーザーアカウントにアクセスするための認証を得ておく必要があります。それには、そのアプリケーションからのアクセスを許可することを示す「トークン」をユーザーから入手します。認証を得たら、ユーザーの代わりに、アプリケーションからアカウントに写真をアップロードしたり、写真を削除したり、コメントを追加したり、非公開写真を表示したりできるようになります。

 この記事では認証の詳細は説明せず、Flickr.NetライブラリからFlickr APIを使って公開データを表示する方法のみ説明します。

Flickr.Netの概要

 Flickr APIキーを取得したら、今度はFlickr.Netライブラリをダウンロードします。これはCodePlexのページからダウンロードできます。このプロジェクトのホームページから[Downloads]タブに移動し、Flickr.Net Binariesをダウンロードします。この中に入っているFlickrNet.dllファイルをASP.NETアプリケーションのBinフォルダにコピーします。

 Flickr.Netライブラリの中心となっているのはFlickrというクラスです。このクラスを使用するとき、Flickr APIキーを指定する必要があります。これは、Flickrクラスのコンストラクタで次のようにして行います。

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


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

 もっとよい方法として、Web.configでFlickr APIキーを設定する方法もあります。Web.configで設定しておくと、Flickr.Netライブラリを使用するページごとにAPIキーをコピー&ペーストする必要がなくなり、新しいキーを使うことになったとしても、1か所を修正するだけで済みます。この記事のサンプルコードでは、Web.configでキーを設定しています。また、Flickr.Netプロジェクトページの「Example Config File demo」には、Web.configでこの設定を行うための詳しい情報が示されています。

 Flickrクラスをインスタンス化したら、そのインスタンスを使用してFlickr APIを呼び出すことができます。例えば、FlickrクラスのPhotosGetInfo(photo_id)メソッドは、特定の写真の情報を返します(Flickrに表示されている写真のphoto_idはその写真のURLを見ると分かります。URLはhttp://www.flickr.com/photos/your_nickname/photo_id/という形式です)。例えば、次のようにすると写真の情報を取得できます。

// C#: Create a Flickr object
Flickr flickr = new Flickr();
 // Get information about photo 936265426
PhotoInfo photoInfo = flickr.PhotosGetInfo("936265426");

// Display the title
lblPhotoTitle.Text = photoInfo.Title;


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


' Get information about photo 936265426
Dim photoInfo As PhotoInfo = flickr.PhotosGetInfo("936265426")

' Display the title
lblPhotoTitle.Text = PhotoInfo.Title
※注

 上記のコードのFlickrコンストラクタでFlickr APIキーを明示的に指定していないのは、Web.configで既に指定してあるからです。コンストラクタはWeb.configから暗黙にAPIキーを取得できます。

 PhotosGetInfo(photo_id)メソッドは、PhotoInfoオブジェクトを返します。このオブジェクトには、写真の情報を提供するDateUploadedTitleDescriptionViewCountなどのプロパティと、Flickrサーバ上の写真のURLを返すThumbnailUrlSmallUrlMediumUrlLargeUrlOriginalUrlなどのプロパティがあります。ここから取得できるURLは実際のJPG画像の場所を示し、これをImage Webコントロールで使うことによって、自分のウェブサイトに写真を表示できます。Flickr.Netライブラリのオブジェクト、プロパティ、メソッドの一覧については、Flickr.Netライブラリプロジェクトの[Downloads]タブから入手できるドキュメントを参照ください。

 ここで大切なのは、Flickr.Netライブラリを使えば、低水準の操作方法がわからなくてもFlickr APIを利用できるということです。作成するアプリケーションとFlickrサーバの間でどのようにデータが行き来するかも知る必要がありません。Flickrオブジェクトを作成し、メソッドを呼び出し、Flickrからの結果をモデリングするオブジェクト(またはオブジェクトの配列)に戻ればいいだけです。

会員登録無料すると、続きをお読みいただけます

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

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

メールバックナンバー

次のページ
写真の検索

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

  • このエントリーをはてなブックマークに追加
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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー

アクセスランキング

アクセスランキング