Create a photoset from a tag

This sample demonstrates how to search for photos by tag, sort photos, and create a photoset.

<?php
include_once 'Phlickr/Api.php';
include_once
'Phlickr/AuthedPhotosetList.php';
include_once
'Phlickr/PhotoList.php';
include_once
'Phlickr/PhotoListIterator.php';
require_once
'Phlickr/PhotoSorter.php';
require_once
'Phlickr/PhotoSortStrategy/ByColor.php';

// use the GetToken.php script to generate a config file.
define('API_CONFIG_FILE', './authinfo.cfg');
// the cache file isn't required but if you share it's nice.
define('CACHE_FILE', dirname(__FILE__) . '/cache.tmp');

print(
'Comma separated list of tags: ');
// split the tags into an array, dropping commas and white space.
$tags = trim(fgets(STDIN));

// create a request to search for photos tagged with person and happy
// from all users.
$api = Phlickr_Api::createFrom(API_CONFIG_FILE);
$request = $api->createRequest(
 
'flickr.photos.search',
  array(
   
'tags' => $tags,
   
'tag_mode' => 'all',
   
'user_id' => $api->getUserId()
  )
);

// use the photo list and photo list iterator to display the titles and urls
// of each of the photos.
print "Searching for matching photos...\n";
$pl = new Phlickr_PhotoList($request, Phlickr_PhotoList::PER_PAGE_MAX);
$count = $pl->getCount();

if (
$count == 0) {
  print
"No photos could be found tagged with $tags.\n";
} else {
  print
"Found $count photos tagged with $tags...\n";

 
// create a sorter that will uses the color sort strategy
 
$strategy = new Phlickr_PhotoSortStrategy_ByColor($api->getCache());
 
$sorter = new Phlickr_PhotoSorter($strategy);

 
// use a photolist iterator so that all the pages are sorted.
 
print "Sorting the photos (this might take a while)...\n";
 
$photos = $sorter->sort(new Phlickr_PhotoListIterator($pl));
 
$photo_ids = Phlickr_PhotoSorter::idsFromPhotos($photos);

 
// create the authed photoset list for the current user...
 
$apsl = new Phlickr_AuthedPhotosetList($api);
 
// .. and create a new photo set
 
$id = $apsl->create($tags, 'photo set created from tags ' . $tags, $photo_ids[0]);

 
// wait a few seconds for the set to be created
 
sleep(3);

 
// now, create the photset ojbect and add the photos
 
$aps = new Phlickr_AuthedPhotoset($api, $id);
 
$aps->editPhotos($photo_ids[0], $photo_ids);

  print
"Created a photoset named '$tags':\n". $aps->buildUrl() ."\n";
}
?>

for you, a photo

madison race

ads

User login