Yandex.Fotki APIサービスを操作するためのクラスライブラリ

このライブラリにより、PHPで記述されたプロジェクトでYandex.Fotki APIサービスを使用できるようになり、APIが現在提供するすべての可能性がカバーされます。

ライブラリに関するページ: code.websaints.net



このライブラリを使用すると、次のことができます。



次の理由から、Yandex.Fotkiサービスを使用する必要があります。



カットの下に、簡単なコメント付きで提供される作業とそのコードの例があります。







Vladislav Mamontovichのお気に入りの写真のギャラリー



すぐに予約する:

-いいえ、このサービスに基づいて画像ホスティングを作成することはできません。これは1.2.4項に違反するためです。 Yandex.Fotki APIサービスのユーザー契約 。 選択した例は、明確にするためだけのものであり、完全に正しいわけではありません。 Yandexの従業員が彼を優しく扱うことを願っています。 または、少なくとも、不幸なVladislav Mamontovichをブロックする前に警告されます。



この例は2つのファイルで構成されています。

  1. example.html-ギャラリーを表示
  2. upload_image.html-画像のアップロード


Yandex.Fotkiで直接作業しているコード以外には焦点を当てません。 コードに関連する質問がある場合は、コメントで質問してください。 確かに答えます。



example.html



このページに実装する主な機能は何ですか:





1.サービスを利用するユーザーを作成します。 すなわち-ヴラディスラフ・マモントヴィッチ。



  1. $ photo = new yandex_fotki "MojoElephant" ;




2. Mamontovichの写真の一般的なコレクションを取得する



  1. $ photo- > user -> add_photo_collection "Elephant Photo" ;




3. Mamontovichがアップロードした最新の25枚の写真を取得する



  1. $ photo- > user -> photo_collection "Elephant Photo" -> se array "limit" => 25 ;




4.それらをすべて通過した後、ギャラリーを形成します



  1. foreach $ photo- > user -> photo_collection "Elephant Photo" -> photo_list 0 as $ index => $ photo_element {
  2. $ photo_block = new template_class "Photo" "../../templates/photo.html" ;
  3. $ photo_block- > point "Entry Points" ;
  4. $ photo_block- > plug "Entry Points" " Enlarged " " Enlarged " $ photo_element- > get_L ;
  5. $ photo_block- > plug "Entry Points" "Preview" "Preview" $ photo_element- > get_XXS ;
  6. $ gallery- > plug "Entry Points" "Photo" $ index $ photo_block- > render ;
  7. }




5. Mamontovichが写真をアップロードした場合、新しい写真の識別子がスクリプトに転送されました。 IDで新しく読み込まれた写真を取得します



  1. $ new_photo = $ photo- > user -> photo_collection "Elephant Photo" -> get_photo_by_id $ photo_id ;




6.リンクのリストを表示する



  1. $ link_block = new template_class "Links" "../../templates/link_block.html" ;
  2. $ link_block- > point "入力ポイント" ;
  3. $ link_block- > plug "Entry Points" "Original" "Link" $ new_photo- > get_orig ;
  4. $ link_block- > plug "入力ポイント" "XL" "リンク" $ new_photo- > get_XL ;
  5. $ link_block- > plug "入力ポイント" "L" "リンク" $ new_photo- > get_L ;
  6. $ link_block- > plug "入力ポイント" "M" "リンク" $ new_photo- > get_M ;
  7. $ link_block- > plug "入力ポイント" "S" "リンク" $ new_photo- > get_S ;
  8. $ link_block- > plug "入力ポイント" "XS" "リンク" $ new_photo- > get_XS ;
  9. $ link_block- > plug "入力ポイント" "XXS" "リンク" $ new_photo- > get_XXS ;
  10. $ link_block- > plug "Entry Points" "XXXS" "Link" $ new_photo- > get_XXXS ;




upload_image.html



このページに実装する主な機能は何ですか:



1.写真のアップロードは認証されたユーザーのみが可能であるため、クラスyandex_fotkiのオブジェクトを作成して認証します。



  1. $ photo = new yandex_fotki "MojoElephant" "password" ;




2.その後、写真のコレクションを取得する必要があります。ここに、Mamontovichの新しい写真を追加します。



  1. $ photo- > user -> add_photo_collection "Elephant Photo" ;




3.実際、写真をYandex.Fotkiにアップロードします。 ダウンロード後、写真付き身分証明書を取得します。



  1. $ new_photo = array
  2. "path" => "../../uploaded/" $ _FILES [ "写真" ] [ "名前" ]
  3. ;
  4. $ result = $ photo- > user -> photo_collection "Elephant Photo" -> up $ new_photo ;




4.写真IDを保存します。 任意の方法を使用できますが、少なくともそれを実現します。 これらの目的のために、セッションにデータを保存するメッセージシステムを使用します。



5. Mamontovichをexample.htmlに転送し、アップロードした写真へのリンクを受け取ってギャラリーで表示します。



おわりに



ご覧のとおり、すべてが非常にシンプルで快適です。

最小限の労力で、サイトにギャラリーを実装できます。

Yandex.Fotkiに写真を保存する唯一の欠点は、サービスにメタデータを保存するよりもサービスがメタデータを要求するのに時間がかかることです。 しかし、キャッシュの賢明な使用はそれをほとんど無効にします。



さらなる研究のための資料





ありがとう



暗号化アルゴリズムの移植、 Yandex.Fotki APIプロジェクトを明確にするためのプロト 、コメント、そして私に与えられた時間のために他のすべての人に助けてくれたar2rnickmitinに感謝します。 また、#php RusNetチャンネルの人々に感謝し、私の仕事に専門的な評価を与え、より良い方法をアドバイスしてくれました。 mz、avz、focusshifterおよびその他すべて。 ありがとう



このコードは、 antonshevchukによって考案されたhighlight.hohli.comによって強調表示されています。





次は?



次は、エラーの検索と修正、コードのリファクタリング、ライブラリの使用とYandexのイデオロギーに関する詳細な記事の作成、フロー、いくつかのCMS用のプラグインの作成です。 はい、実際、私とあなたにとって必要で興味深いものはすべてあります。

しかし、少なくとも何か他のものがあるためには、誰かが私の仕事を必要としていることを知る必要があります。 ライブラリが役に立つ場合は、それについて書いてください。 黙ってはいけません。



PS図書館が好きで、DEVCONFの参加について考えているなら、会議のウェブサイトで私のレポートに投票してください: www.devconf.ru/phpconf/offers



All Articles