Ruby on RailsとYandex.Fotki API:ホームページに最新の写真を表示

画像

私は数年前からYandex.Fotkiサービスを使用してすべての写真を保存していますが、最近、ホームページでYandex.Fotkiにアップロードされた最後のn個の写真を表示したいという要望がありました。





すぐに言ってやった。 Photosはかなり便利なAtomPub APIを提供することが判明しました。 なぜなら Ruby on Railsプラットフォームでページを作成することを計画しましたが、短い検索の結果、 feedzirraが機能するための優れたライブラリを見つけました。 ライブラリは完全に標準的な方法でインストールされました。

gem sources -a gems.github.com gem install pauldix-feedzirra



  1. gem sources -a gems.github.com gem install pauldix-feedzirra



  2. gem sources -a gems.github.com gem install pauldix-feedzirra





さらに、ルビーではその使用を登録するだけで十分です:

  1. 「feedzirra」が必要


提供されているAPIを学習します。



Yandexが提供するAPIを検討した結果、ユーザーが公開した最新の写真のリストは次のURLで入手できることがわかりました。

api-fotki.yandex.ru/api/users < _ > /photos/published/?limit= < __ >





この操作の許可は必要ありません。 ドキュメントにはXML出力の例がありましたが、完全に真実ではないことが判明しました。 クローズデバッグの方法により、問題は解決しました。



そのため、画像のラッパークラスを作成しました

  1. クラス ImageBundle
  2. attr_accessor:url ,: album_link ,: title ,: xxl_url
  3. 終わり


ここで、urlは正方形の画像のプレビューのアドレス、album_linkはアルバムへのリンク、titleは画像の名前、xxl_urlは大判画像のアドレスです。



次に、コントローラーで受信データのコレクションに記入しました

  1. feed = Feedzirra :: Feed.fetch_and_parse( "http://api-fotki.yandex.ru/api/users/ligrimp/photos/published/?limit=35"
  2. @images =配列。 新しい
  3. feed.entriesの画像
  4. image_url = image.links [3]
  5. i = ImageBundle。 新しい
  6. i.xxl_url = image_url.clone
  7. image_url [ "XL" ] = "XXS"
  8. i.url = image_url
  9. i.album_link = image.links [2]
  10. i.title = image.title
  11. @images << i
  12. 終わり




UIの結論は技術的な問題であることが判明し、マークアップとiLoadに HAMLを使用して、次のようなものを得ました。

  1. -@imagesの画像
  2. %a {:href => image.xxl_url ,: target => "_blank" 、: rel => "iLoad :: Yandex.fotki" ,: title => image.title }
  3. %img {:src => image.url ,: title => image.title}



All Articles