dFlickr: Delphi API Kit for Flickr

About

dFlickr wraps most functions of the Flickr API and provides the necessary classes to access users/photos/photosets/groups/pools/blogs in Flickr. It is released under an MIT license.

dFlickr is developed by Dimitris Giannitsaros.

Download

Click here to download version 0.9.3b (2005-11-14 / 394kb)
Includes a simple demo application both in binary and source format.
dFlickr Demo screenshot, click to enlarge

Libraries

dFlickr requires:


It has been tested on Delphi 2005/Indy10, Delphi 6/Indy 9, Delphi 5.

Applications using dFlickr

Changelog

Version: 0.9.3b, 2005-11-14 (download)
- Updated ZIP file, to include a missing file

Version: 0.9.3, 2005-10-07 (download)
- Most code for this release was developed by Paul Traynier
- Support for new authentication
- Added TFlickrPhoto.Urls
- Added TFlickrPhoto.Rotation
- Added TFlickrPhoto.LastUpdate
- Added TFlickrPeople.IconServer
- Fixed TFlickrPhoto.IsFriend/IsFamily/IsPublic (removed underscore)
- Support for Delphi5 in demo application
- Calls to flickr.com use POST instead of GET

Version: 0.9.2, 2005-04-12 (download)
- Added support for extras field in PhotosSearch()

Version: 0.9.1, 2005-03-11 (download)
- Object functions that change properties, invalidate the cache
- Minor changes in some function names

Version: 0.9, 2005-03-09 (download)
- Upload support
Version: 0.8, 2005-03-06 (download)
- Initial version

Example

var
  Flickr: TFlickr; // this is our basic object
  People: TFlickrPeople;
begin
  // you need an API key. You can get one from Flickr
  Flickr := TFlickr.Create(EdtAPIKey.Text);
  // authentication is needed for some calls
  Flickr.Authenticate(EdtEmail.Text, EdtPassword.Text);
  try
    // this will return a TPeople object, with some properties filled (e.g. Id)
    People := Flickr.PeopleFindByEmail('[email protected]'); // connects to Flickr
    Print(People.Id);
    // some other properties must make a new connection to Flickr to get filled
    // these details are cached for future calls
    Print(People.Realname); // connects to Flickr
    Print(People.Location); // no need to connect to Flickr
    PrintList(People.PublicPhotos); // connects to Flickr
    Print(People.PublicPhotos.GetPhoto(0).Title); // no need to connect to Flickr
  except
    on E: Exception do Print('Error: ' + E.Message);
  end;