Page 88 - JavaScript修炼之道
P. 88
任务34 Flickr的同步更新 79
获取某人公开的照片
mashups/flickr/flickr.js
var FLICKR_ENDPOINT='http://api.flickr.com/services/feeds/photos_public.gne';
var FLICKR_USER_ID ='97027332@N00'; // 这是作者的ID
var item = new Template(
'<li><a href="#{target}"><img src="#{src}" title="#{title}" /></a></li>');
function jsonFlickrFeed(data) {
var stream = $('flickrStream'), d, dateStr;
data.items.each(function(photo) {
d = photo.published.split(/\D/);
dateStr = d[1] + '/' + d[2] + '/' + d[0];
stream.insert(item.evaluate({
src: photo.media.m.replace('_m', '_s'), target: photo.link,
title: 'Published on ' + dateStr + ' GMT'
}));
});
$('indicator').removeClassName('loading').update('Loaded!');
}
function loadFlickrPhotostream() {
var uri = FLICKR_ENDPOINT + '?format=json&id=' + FLICKR_USER_ID;
document.documentElement.firstChild.appendChild(
new Element('script', { type: 'text/javascript',
src: uri + '&r=' + Math.random() }));
}
JSON-P响应的部分内容
jsonFlickrFeed({
// ...
"items": [
{
"title": "P1010071",
"link": "http://www.flickr.com/photos/97027332@N00/4105961623/",
"media": {
"m":"http://farm3.static.flickr.com/2638/4105961623_ec0ca9c164_m.jpg"
},
"date_taken": "2009-11-12T15:38:21-08:00",
// ...
"published": "2009-11-15T18:54:21Z",
// ...
},
// ...
]
})