Here is my code for showing my Flickr photos on the left side of my blog:
namespace eval flickr {}
namespace eval flickr::people {}
ad_proc flickr::api_key {} {
return "<em>your api key here</em>"
}
ad_proc flickr::people::findByUsername { username } {
set doc [util_httpget [export_vars -base http://www.flickr.com/services/rest/ \
{ { method flickr.people.findByUsername } { api_key [flickr::api_key] } username }]]
set xml [xml_parse -persist $doc]
set root [xml_doc_get_first_node $xml]
set user [xml_node_get_first_child_by_name $root "user"]
return [xml_node_get_attribute $user nsid]
}
ad_proc flickr::people::getPublicPhotos { {-multirow images} user_id {per_page 5} {page 1} } {
set doc [util_httpget [export_vars -base http://www.flickr.com/services/rest/ \
{ { method flickr.people.getPublicPhotos } { api_key [flickr::api_key] } user_id per_page page }]]
set xml [xml_parse -persist $doc]
set root [xml_doc_get_first_node $xml]
set photos [xml_node_get_first_child_by_name $root "photos"]
template::multirow create $multirow url src width height title
foreach photo [xml_node_get_children_by_name $photos "photo"] {
foreach attr { id secret server title } {
set $attr [xml_node_get_attribute $photo $attr]
}
template::multirow append $multirow \
http://www.flickr.com/photos/$user_id/$id \
http://photos${server}.flickr.com/${id}_${secret}_s.jpg 75 75 $title
}
}
Feel free to use for any purpose. Beware that there are no safety guards. Use at your own risk :)
Comments