CodeZine(コードジン)

特集ページ一覧

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

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

  • ブックマーク
  • LINEで送る
  • このエントリーをはてなブックマークに追加
2009/11/12 14:00

ダウンロード サンプルソース (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からの結果をモデリングするオブジェクト(またはオブジェクトの配列)に戻ればいいだけです。


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

著者プロフィール

バックナンバー

連載:japan.internet.com翻訳記事

もっと読む

All contents copyright © 2005-2020 Shoeisha Co., Ltd. All rights reserved. ver.1.5