
私は数年前からYandex.Fotkiサービスを使用してすべての写真を保存していますが、最近、ホームページでYandex.Fotkiにアップロードされた最後のn個の写真を表示したいという要望がありました。
- ホームページは管理を必要としません。
- ストレージとイメージ管理は不要です。
- プレビューなどに画像のサイズ変更は必要ありません。
すぐに言ってやった。 Photosはかなり便利なAtomPub
APIを提供することが判明しました。 なぜなら Ruby on Railsプラットフォームでページを作成することを計画しましたが、短い検索の結果、
feedzirraが機能するための優れたライブラリを見つけました。 ライブラリは完全に標準的な方法でインストールされました。
gem sources -a gems.github.com gem install pauldix-feedzirra
gem sources -a gems.github.com gem install pauldix-feedzirra
gem sources -a gems.github.com gem install pauldix-feedzirra
さらに、ルビーではその使用を登録するだけで十分です:
- 「feedzirra」が必要
提供されているAPIを学習します。
Yandexが提供するAPIを検討した結果、ユーザーが公開した最新の写真のリストは次のURLで入手できることがわかりました。
api-fotki.yandex.ru/api/users < _ > /photos/published/?limit= < __ >
この操作の許可は必要ありません。 ドキュメントにはXML出力の例がありましたが、完全に真実ではないことが判明しました。 クローズデバッグの方法により、問題は解決しました。
そのため、画像のラッパークラスを作成しました
- クラス ImageBundle
- attr_accessor:url ,: album_link ,: title ,: xxl_url
- 終わり
ここで、urlは正方形の画像のプレビューのアドレス、album_linkはアルバムへのリンク、titleは画像の名前、xxl_urlは大判画像のアドレスです。
次に、コントローラーで受信データのコレクションに記入しました
- feed = Feedzirra :: Feed.fetch_and_parse( "http://api-fotki.yandex.ru/api/users/ligrimp/photos/published/?limit=35" )
- @images =配列。 新しい
- feed.entriesの画像用
- image_url = image.links [3]
- i = ImageBundle。 新しい
- i.xxl_url = image_url.clone
- image_url [ "XL" ] = "XXS"
- i.url = image_url
- i.album_link = image.links [2]
- i.title = image.title
- @images << i
- 終わり
UIの結論は技術的な問題であることが判明し、マークアップと
iLoadに HAMLを使用して、次のようなものを得ました。
- -@imagesの画像用
- %a {:href => image.xxl_url ,: target => "_blank" 、: rel => "iLoad :: Yandex.fotki" ,: title => image.title }
- %img {:src => image.url ,: title => image.title}