WEB开发网
开发学院软件开发Java 用 Flickr API 扩展 Project Zero 和 WebSphere s... 阅读

用 Flickr API 扩展 Project Zero 和 WebSphere sMash 的脚本平台

 2009-11-17 00:00:00 来源:WEB开发网   
核心提示: 图1. 照片拼接的屏幕快照图片看不清楚?请点击这里查看原图(大图),创建如图 1 所示的照片拼接最简单的方法就是使用一个查找照片集的 Groovy 模板,用 Flickr API 扩展 Project Zero 和 WebSphere sMash 的脚本平台(9),然后使用由 Flickr 返回


图1. 照片拼接的屏幕快照
用 Flickr API 扩展 Project Zero 和 WebSphere sMash 的脚本平台

图片看不清楚?请点击这里查看原图(大图)。

创建如图 1 所示的照片拼接最简单的方法就是使用一个查找照片集的 Groovy 模板,然后使用由 Flickr 返回的照片集构建一个 HTML 表。更具体地说,就是使用 flickr() 方法查找照片记录,使用 thumbnail() 方法构建照片拼接,使用 original() 方法创建这个拼接到 Flickr 原始图像的超级链接。清单 12 显示了构建拼接表所需的 Groovy 代码;可以把它复制到一个更大的模板文件中,作为应用程序的完整用户界面的一部分。如果想立即测试一下这个小部件,它已经包括在 flickr.test 示例项目中 /public/index.gt 下。只要运行这个应用程序并用所喜欢的浏览器访问 http://localhost:8080 就可以看到这个小部件的运行。


清单 12. 配置 Flickr API 键
<table border='0' cellpadding='0' cellspacing='10'> 
 
<% 
def set = "72157602828759420"; // flickr photo set ID 
 
def length = 4; // size of the photo display box 
 
for (page in 1..length) { 
  // 
  // set name-value pairs as specified by flickr API 
  // 
  request.flickr.method = "flickr.photosets.getPhotos"; 
  request.flickr.params = [ 
    photoset_id: set, 
    per_page: length, 
    page: page, 
    extras: "original_format" 
  ]; 
   
  flickr(); // send request to flickr 
   
  def response = request.flickr.response[]; 
   
  println "<tr>"; 
   
  response.photoset.photo.each() { // build the photo display box 
   println "<td>"; 
   println "<a href='${original(it)}'><img border='0' src='${thumbnail(it)}'></a>"; 
   println "</td>"; 
  } 
   
  println "</tr>"; 
} 
%> 
   
</table> 

清单 12 中的头两行代码分别提供了 Flickr 照片集 ID 以及拼贴图框的大小;可以改变这些值,以决定所显示的是何照片以及这个框有多大(如果您手头没有可用于测试的照片集,就可以使用清单 12 中的这个 Project Zero 团队的照片集)。另外一个值得注意的地方就是您不会同时得到所有的照片数据;照片数据在页面中读取,这样就有一些照片已被呈现,其他照片则尚在显露的过程中。如果允许在同一时间得到所有照片,并且随后创建表单元格,那么在拼贴图最终弹出前,加载时的初始等待时间将会比较长。

在自己运行这个代码前,需要在应用程序中的 zero.config 文件中设定 Flickr API 键。本文开始的部分就曾指导您参考 Flickr 站点来获得自己的 API 键,希望您现在已经有了 API 键。清单 13 显示了如何使用您的个人 API 键设置前面章节讨论过的 config.flickr.key 属性:


清单 13. 配置 Flickr API 键
[/config/flickr] 
key=1234567890 

有了 API 键,就可以使用我们的定制 Groovy 绑定自由地读写 Flickr 数据。

结束语

Flickr 为那些想要将站点元素合并到自己的应用程序中的开发人员提供了一种非常有用、灵活的 API ,若能使用 Groovy 脚本编写和 Project Zero 平台会让事情更加简单。此外,本文中所介绍的这些技巧也可以适用到其他综合了社会性和数据分享的热门站点(比如 YouTube、Blogger 等)。只要 Web 站点能继续用 RESTful API 和可移植的数据格式公开其共享数据,您就总是能够将它们合并到 Zero 编程模型中。

本文示例源代码或素材下载

上一页  4 5 6 7 8 9 

Tags:Flickr API 扩展

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接