使用Flickr API构建应用
互联网的mashup模式开发越来越流行,网站已经不是单纯地提供信息,更多的是集成更多的服务,构建大型的应用程序。这种趋势越来越明显,很多大的互联网公司都公布了自己的API接口,提供给开发者更多的可操作资源。Google Map提供的是JavaScript接口,以前了解过一些,大概忘得差不多了。Google Chrome extension里提供的一个小例子是从Flickr请求图片,里面的请求脚本是用JavaScript写的,自己写了段脚本,不过无法从Flickr请求成功,后来才猛然觉悟是JavaScript同源策略导致的。不过Chrome可以请求成功,应该是内部实现了某种方式。
Flickr官方提供了多种编程语言接口实现,以及可以使用的API。其实看清API应用并不神秘,只是如果能充分使用官方提供的API接口,构建各种应用就可轻而易举。这里用PHP作为实现方式。看代码。 忘了说明一点,使用Flickr API必须要有自己的api_key,可以轻松地从Flickr官方获取。
<?php
$url = 'http://api.flickr.com/services/rest/'; // 请求的URL地址
$params = '?method=flickr.photos.search' . // method指明Flickr API所提供的某个方法
'&api_key=2f59b5e190101271213d4b636e30824f' . // Flickr分配的key
'&text=sea'; // 关键字
//生成的URL
//http://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=2f59b5e190101271213d4b636e30824f&text=sea
//如果把改URL黏贴到浏览器的地址栏里,同样可以得到XML文件
$contents = file_get_contents($url . $params);
$xml = new SimpleXMLElement($contents); // 解析XML文件
foreach ($xml->photos->photo as $value) {
$src = 'http://farm' . $value['farm'] . ".static.flickr.com/" .
$value['server'] . '/' . $value['id'] . '_' . $value['secret'] . '_s.jpg'; // _s用来控制显示图片的大小
echo "<img src=\"$src\" />";
}
?>
默认请求每页显示100张图片,可以使用per_page=number来指定具体的数量。更多参数可以查看Flickr官方的API,flickr.photos.search.html。
其中的原理清楚之后就可以用不同的编程语言来模拟请求,无非是找到某种适合发送GET或POST请求的函数。提供API接口的URL便会响应,传送数据到请求方,这样就可以对传回的数据进行处理应用。
现在还没有评论
留下您的脚印