ASP.NETからFlickrNETを使ってFlickr画像にアクセスする
もはや死語となりつつあるが、Web2.0の先駆けともいえるFlickr。APIからユーザー情報や写真を取り出すことができるのだが、ASP.NETからスマートにAPIを呼び出したいという時にはFlickrNetというライブラリが便利だ。
ネットを探してみるといくらでも使用方法がみつかるので、詳しい使用方法はそちらにお任せ。その他、自分で改めて構築した際の注意点を挙げておく。
[変更されたクラス]
バージョン3系統になって多少クラスが変更されたようだ。特にFlickrクラスのPhotosSearchメソッドの戻り値はPhotoCollectionとなっている。旧コードでは動かない可能性が高いので注意が必要だ。
[レンタルサーバにアプリを配置する場合]
Flickrとアクセスし、データを受信した際に一度キャッシュを作る。なにも指定しないとこれはCドライブのテンプレート領域等に書き込みにいくのだが、レンタルサーバだとアクセス権がないためにランタイムエラーが起きて落ちる。
ローカルで問題なくてもアップしたとたんにエラーを出してしまう場合はこれを疑ってみる。
解決方法は、キャッシュ設定を変更すること。これはweb.configに記述する。
まず、以下を記載。
<section name="flickrNet" type="FlickrNet.FlickrConfigurationManager,FlickrNet">
configSections直後に、キャッシュ場所の変更を追加。
<flickrnet cacheDisabled="true" cacheLocation="D:\FlickrCache\"></flickrnet>
スタックトレース等で追いかけるとIOエラーが発生していたことから気づいたのだが、
解決までしばらく悩んだ。
ネットを探してみるといくらでも使用方法がみつかるので、詳しい使用方法はそちらにお任せ。その他、自分で改めて構築した際の注意点を挙げておく。
[変更されたクラス]
バージョン3系統になって多少クラスが変更されたようだ。特にFlickrクラスのPhotosSearchメソッドの戻り値はPhotoCollectionとなっている。旧コードでは動かない可能性が高いので注意が必要だ。
[レンタルサーバにアプリを配置する場合]
Flickrとアクセスし、データを受信した際に一度キャッシュを作る。なにも指定しないとこれはCドライブのテンプレート領域等に書き込みにいくのだが、レンタルサーバだとアクセス権がないためにランタイムエラーが起きて落ちる。
ローカルで問題なくてもアップしたとたんにエラーを出してしまう場合はこれを疑ってみる。
解決方法は、キャッシュ設定を変更すること。これはweb.configに記述する。
まず、以下を記載。
<section name="flickrNet" type="FlickrNet.FlickrConfigurationManager,FlickrNet">
configSections直後に、キャッシュ場所の変更を追加。
<flickrnet cacheDisabled="true" cacheLocation="D:\FlickrCache\"></flickrnet>
スタックトレース等で追いかけるとIOエラーが発生していたことから気づいたのだが、
解決までしばらく悩んだ。