PerlからFlickr APIを使用する

親愛なる%habr_username%!


誰も知らない場合は、世界で最も人気のある写真ホスティングサイトの1つであるFlickrFlickrに関するwiki)について話しています



Flickr APIについて簡単に説明します。これは、ハブ上での参照が短いためです。


Flickrの開発者は、すべての考えられる、考えられない機能、データ、機能へのアクセスを提供する強力なAPIを使用する機会を誰にでも与えます。 Flickr APIは十分に文書化されており、すべてのリクエストの完全な説明( )、 FAQ「クイックスタート 」があります。これらはFlickr APIに関する主要な知識源であり、アプリケーションの開発を始めるのに十分です。 Flickr APIの使用を容易にするモジュールは、IOSおよびAndroidの開発で現在広く使用されているObjective-CJavaを含む、ほとんどの一般的なプログラミング言語で利用できます。リンク付きのリストはここにあります (ページを下にスクロール)。



アプリケーションの件名(例)


Flickrの最も人気のあるアイデアの1つについて-その日の最も興味深い写真を選択するアルゴリズムがあり、毎日500の最も興味深い(アルゴリズムに従って)写真のリストを形成し、すべてのユーザーが行きたいです。 そして、これはおそらくFlickr APIを使用してアプリケーションを作成するための最も人気のある(同時に実装が簡単な)トピックの1つです。 Flickrへのこの短いエクスカーションを迅速に完了するために、これはこの記事の主題ではないので、議論されている内容がすぐに明らかになるリンクをいくつか示します。 毎月最も人気のある写真 (ページはFlickr自体に直接あります)になりました。現在、いくつかのサードパーティWebプロジェクトはFlickriverflickrhivemindです。 そのようなプロジェクトの数を推測することしかできません。また、そのようなアプリケーションはすでにAndroidとIOSで利用可能であると確信しています。一般に、「悲劇の規模」はグローバルであり、このアイデアを実装および開発する可能性もあります。



Perlの使用例


開始に必要なすべての処理(flickrでの登録、キー、アプリケーションの秘密ハッシュコードなど )を完了したら、開始できます。 したがって、Perl言語の場合、 Flickr :: APIを呼び出すモジュールもあります 。 さて、使用してみましょう。

#!/usr/bin/perl use warnings; use strict; use Flickr::API; my $flickr_api_key = _flickr_api_key; my $flickr_api_secret = _flickr_api_secret; my $api = new Flickr::API({ 'key' => $flickr_api_key, 'secret' => $flickr_api_secret}); my $resp = $api->execute_method('flickr.interestingness.getlist', { 'per_page' => 100 }) my $cont = $$resp{_content};
      
      





ここでは、説明からわかるように、APIメソッドflickr.interestingness.getListを使用して人気のある写真のリストを取得します。リストを取得する日、問題の写真の数、追加パラメーターを指定できます。

現在、$ contには、APIメソッドの説明で指定され種類のxml応答が含まれています 。 これが断片です(今日の出力20110809)-したがって、$ contを印刷すると、次のようになります。



 <?xml version="1.0" encoding="utf-8" ?> <rsp stat="ok"> <photos page="1" pages="5" perpage="100" total="500"> <photo id="6017677390" owner="16956431@N06" secret="45ceb165dc" server="6012" farm="7" title="" ispublic="1" isfriend="0" isfamily="0" /> <photo id="6018692165" owner="28911620@N00" secret="fa3550b6be" server="6144" farm="7" title="Tottenham riots" ispublic="1" isfriend="0" isfamily="0" /> <photo id="6016971301" owner="23450806@N04" secret="985e5ba585" server="6141" farm="7" title="." ispublic="1" isfriend="0" isfamily="0" /> ........................... ........................... ........................... <photo id="6017757609" owner="23548413@N00" secret="00f14219f3" server="6130" farm="7" title="harvest field" ispublic="1" isfriend="0" isfamily="0" /> <photo id="6016821183" owner="39952864@N07" secret="dbf3a64a3f" server="6028" farm="7" title="duisburg_060811" ispublic="1" isfriend="0" isfamily="0" /> </photos> </rsp>
      
      







だから、Flickrの画像へのリンクを形成することについてのポイントは何ですか-各フィールドは、 公式画像へのリンクについて、各写真の説明をどのように理解したかです ドキュメント または、簡単に言えば Flickrイメージへのリンクは次のようになりますhttp ://farm"farm ".static.flickr.com/"server "/"photo id "_"secret ".jpg





つまり、たとえば、問題の最初の写真の場合、 https://habrastorage.org/getpro/habr/post_images/055/f43/5b2/055f435b217e402bb660663b7c6c1463.pngが取得されます 。 恥ずかしがらずに-クリックして確認してください。

つまり、この問題を「解析」するだけで、誰でも好きなように実行できます。真珠のXMLパーサーを一覧表示することはできませんが、問題の構造は将来変更される可能性があるため、ご自身の責任で直接解析できます。



これで、特定の日付のFlickrに最高の写真を表示するためのすべてが揃ったので、ウェブサイトに表示するか、デスクトップのウィジェットに表示するか、モバイルデバイスのアプリケーションに表示するかなどを決めるのはあなた次第です。



最後に、htmlページを生成するための簡単な例を示します。 額にあるFlickr APIからのXML応答を解析し、すぐにコードを1サイクルで印刷して画像付きのhtmlページを形成するコードを提供します。

 @cont_strings = split(/\n/,$cont); foreach $string (@cont_strings) { next if $string !~ /photo/; next if $string =~ /<photos/; next if $string =~ /\/photos>/; $string =~ m:photo\sid="(.*)"\sowner="(.*)"\ssecret="(.*)"\sserver="(.*)"\sfarm="(.*)"\stitle="(.*)"\sispublic:; $photo_id = $1; $owner = $2; $secret = $3; $server = $4; $farm = $5; $title = $6; print "<div>"; print "<a target=blank_ href = http://www.flickr.com/photos/".$owner."/".$photo_id."><img title=\"$title\" src=http://farm".$farm.".static.flickr.com/".$server."/".$photo_id."_".$secret.".jpg></a>"; print "</div>
      
      





実際、コードは動作していますが、リアルタイムで書き込みとチェックを行っていますが、どこからでも動きません。したがって、上記のすべてを収集してcgiスクリプトに挿入すると、ページにはすべてのFlickrからその日のベスト100の画像が表示されます。 また、画像をクリックすると、著者のアルバムのこの画像のページに移動します。

たとえば、私たちの問題の最初のページに、あなたのページでどのように見えるかを著者のページへのリンクとともに1枚挿入します。

画像

はい、それはページ全体で100枚の写真になります、はい、それは非常に悲しいです、しかし、上に書かれているすべては、知人だけのために書かれています。 主なことは、必要なデータ配列があり、CSSとjavascriptを少し追加すると、これより悪くないことです。



この記事では、Flickr APIを紹介し、その使いやすさを示したいと思いました。30行のコードがあるため、 簡単なアプリケーションができました。 他のプログラミング言語からFlickr APIを使用することは、上記のPerlで示したものよりもはるかに複雑だとは思いません。 そのため、アイデアがあれば、プラットフォームやタスクにFlickr APIを使用してアプリケーションを開発することは難しくありません。 トピックのタイトルに関係しない多くの資料を書かなければならなかったことを残念に思いますが、その理解に必要です。誰かが上記から新しい何かを描くことを望みます。



Z.Y. Flickrブログがハブに存在しないことを知って驚いた;もしあれば、どこに公開するかという質問に対する答えは明白だろう。 ヤフーでもPerlでも、最初のものは2番目のものにはまったく適していません。もちろん、2番目のものにもあまり良くありません(Perlの記事ではFlickrとFlickr APIに関する大量の情報のためにあまり適していません)その程度まで。



All Articles