A little while ago we released some new API methods that enabled real-time updates for new photo uploads to be pushed out via a PubSub-like subscription system. Initially you could only subscribe to photos from your contacts and favorites from your contacts. Which was pretty neat, but that barely scratches the surface of stuff that happens on Flickr that people might be interested in. So we added some more stuff to subscribe to. Calling flickr.push.getTopics
now gets you:
<rsp stat="ok"> <topics> <topic name="contacts_photos" display_name="photos from your contacts" /> <topic name="contacts_faves" display_name="favorites from your contacts" /> <topic name="photos_of_contacts" display_name="photos of your contacts" /> <topic name="photos_of_me" display_name="photos of you" /> <topic name="my_photos" display_name="your photos" /> <topic name="my_faves" display_name="your favorites" /> <topic name="geo" display_name="photos from an area (geo)" /> <topic name="commons" display_name="photos from the Flickr Commons" /> <topic name="tags" display_name="photos with a tag (or tags)" /> </topics> </rsp>
The details for the extra arguments required by the new topic types are part of the flickr.push.subscribe
API method documentation.
The my_photos
and my_faves
topic types are exactly like contacts_photos
and contacts_faves
, just scoped to your account. The photos_of_me
and photos_of_contacts
topic types create subscriptions that receive events when you or your contacts are tagged in a photo. The really interesting ones though are the next 3: commons
, geo
, and tags
.
The Commons
One of the great new subscription types is for photos from the Flickr Commons. Set the topic type to commons, and set the nsids
argument to a comma-separated list of NSIDs of Commons institutions you’re interested in (get them by calling flickr.push.getInstitutions)
or just leave nsids
empty to get all uploads and updates from the Commons.
Geo Subscriptions
With the geo
topic type you can subscribe to photos from a particular area, specified as either a set of WOE IDs (also, here), a set of Flickr Place IDs, or by a point and a radius. The radial query is the obvious choice for creating subscriptions that aren’t well-known areas, or say, user-specified by dragging a circle on a map. WOE IDs on the other hand are incredibly useful since they represent many well-known geographic features. For example, London, England: WOE ID 44418.
Or, if you’re like me and completely mad about aviation and anything that flies, there are convenient WOE IDs for airports. Go somewhere like this, grab a bunch of airport codes for interesting places, use the Y! GeoPlanet APIs or the flickr.places.find
method) to resolve the airport codes into WOE IDs and put them into a comma-separated list in the woe_ids argument of flickr.push.subscribe and watch the aviation photos roll in. For example:
- Hong Kong International, China (HKG): 24875607
- Innsbruck Airport, Austria (INN): 12510823
- Keflavik International Airport, Iceland (KEF): 12513445
- Le Bourget Airport, Paris (LBG): 22137770
- Kuala Lumpur International Airport, Malaysia (KUL): 28752278
- etc.
Tags
We’ve also added a very basic tag subscription type. With the topic type set to tags
, you can provide a comma-separated list of tag names in the tags
argument of flickr.push.subscribe
and receive uploads and updates from photos containing any (i.e. OR mode) of those tags. Try something like kitten,cat
(We’re not responsible for your bandwidth bill). The tags you specify should be all lower-case and not contain any spaces, so if you want to match something like “Justin Bieber” you’ll need to specify “justinbieber”. Coming soon: machine tags! robots:zomg=yes
…
Warning: Code Alert!
In case you missed it, last month Kellan devoted a little Sunday-morning hack time to whipping up a little example of how to get started with the Flickr real-time APIs. It’s got a little bit about authentication, how to subscribe, processing a feed, and even some PHP. Thanks Kellan!