LoginSignup
1
3

More than 5 years have passed since last update.

FlickrのAPIで画像を取得する(php)

Posted at

最終的にやりたいことは違うんだけど、実験および検証に使う
サンプル用の画像を引っ張ってくるのにまずFlickrのAPIで画像引っ張ってきてダウンロードしたりするところからやる。

flickr
Flickr_ The Flickr Developer Guide

基本的な使い方はこちらのサイトを見ればOK
flickr APIの使い方まとめ(サンプルコード付き).html

落としてくるやつはphpFlickrのやつ。こちらをクリックするとgithubに飛ぶのでそこのソースを落っことしてきた。

あとは先ほどのURLにあるものをそのままコピって実行するだけで画像が一覧表示されるところまでできる。
猫で検索

パンダで検索

ここまではOKっと。ただ画像を1個ずつ保存するのはだるいのでまとめて落としてくるスクリプトを作る

<?php

    //ライブラリを読み込む
    require_once 'phpflickr/phpFlickr.php';

    // Consumer Key
    $app_key = '自分のを入れる';

    // Consumer Secret
    $app_secret = '自分のを入れる';

    // 保存先フォルダ名
    $dir_name = "flickrImg";

    // 保存先ディレクトリがなければ作る
    if(!file_exists($dir_name)) mkdir($dir_name);

    // インスタンスを作成する
    $flickr = new phpFlickr( $app_key , $app_secret ) ;

    //オプションの設定
    $option = array(
        'text' => '猫' ,            // 検索ワードの指定
        'media' => 'photos',        // 画像指定
        'per_page' => 20 ,          // 取得件数
        'extras' => 'url_q,url_c' , // 画像サイズ
        'safe_search' => 1 ,        // セーフサーチ
    ) ;

    // 検索を実行し、取得したデータを[$result]に代入する
    $result = $flickr->photos_search( $option ) ;

    // 画像ダウンロード
    foreach($result['photo'] as $photo)
    {
        // 写真url作成
        $url = "http://farm{$photo['farm']}.staticflickr.com/{$photo['server']}/{$photo['id']}_{$photo['secret']}.jpg";
        $data = file_get_contents($url);
        $save_path = "./{$dir_name}/{$photo['id']}.jpg";
        file_put_contents($save_path, $data);
    }
?>

こんな感じで指定したフォルダに par_pageで指定した個数分ダウンロードされる
こんなことしなくてもツールとか探せば良かったのかもだけど気にしない。

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3