答案 0 :(得分:0)
还没有用于针对Flickr API调用flickr.photosets.getList
方法的内置表(这是您想要的)。有两种方法可以获取您正在寻找的数据:使用xml
YQL表查询Flickr,或创建自己的表,这可以抽象出访问Flickr API的详细信息。
这种方法涉及了解有关Flickr REST API的一些细节,如何构造URL以对其进行查询,以及获取用于对请求进行签名的Flickr API密钥。这些是YQL经常抽象出来的细节,因此您不需要关心它们,但稍后会更多关注它们。
此处的方法是使用XML表,当使用特制URL查询并获得我们想要的结果路径时,将返回所需的照片集。下面,我们将使用我的API密钥进行查询(以节省您自己的密钥,虽然这是一个好主意),并要求在雅虎工作的developer evangelist的照片集(我必须选择某人,他的Flickr是第一个浮现在脑海中的人。)
select * from xml
where url="http://api.flickr.com/services/rest/?method=flickr.photosets.getList&api_key=9aae7ac1770fdd8027b7aec220ae6400&user_id=11414938@N00"
and itemPath="rsp.photosets.photoset"
(Try this query in the YQL console)功能
从那里返回的XML结构(以及通常的YQL内容)看起来像下面的片段(除非你返回JSON,它将包含不是XML格式的相同信息)。
<photoset farm="5" id="72157624272957243" photos="16"
primary="4751612752" secret="b799dcf7d6" server="4139" videos="0">
<title>Mozilla Add-Ons</title>
<description/>
</photoset>
<photoset farm="5" id="72157624375645496" photos="83"
primary="4741533835" secret="f6e66e4aef" server="4122" videos="0">
<title>Carter Steam Fair in Clissold Park</title>
<description/>
</photoset>
<photoset farm="5" id="72157624250084729" photos="27"
primary="4741892180" secret="c7001a3307" server="4141" videos="0">
<title>Stokey</title>
<description>Stuff happening in Stoke Newington in London</description>
</photoset>
然后,无论你想要什么,你都可以随意使用这个结果。由于这个问题更多的是要查询来自Flickr的特定信息,而不是如何使用YQL,我将忽略在您选择的编程语言中使用它并使用结果的详细信息。如果你不知道那种事情,请开始一个新问题。
早些时候,我说过另一种方式。构建要查询的定制表的详细信息将超出合理答案的范围:阅读基础知识和详细信息,请转到{QQL上的这个主题的YQL文档。 {3}}
表本身是非常基本的,除了上面的原始查询之外不会做更多的事情;好处只是隐藏了细节。所以,我先显示表格,然后再使用它。
flickr.photosets.getList
方法进行对话<?xml version="1.0" encoding="UTF-8"?>
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta>
<sampleQuery>select * from {table} where user_id="11414938@N00"</sampleQuery>
<description>Retrieve the photosets belonging to the specified user.</description>
<documentationURL>http://www.flickr.com/services/api/flickr.photosets.getList.html</documentationURL>
<author>Peter Cowburn</author>
</meta>
<bindings>
<select itemPath="rsp.photosets.photoset" produces="XML">
<urls>
<url env="all">http://api.flickr.com/services/rest/?method=flickr.photosets.getList</url>
</urls>
<inputs>
<key id="user_id" type="xs:string" paramType="query" />
<key id="api_key" type="xs:string" const="true" private="true" paramType="query" default="9aae7ac1770fdd8027b7aec220ae6400"/>
</inputs>
</select>
</bindings>
</table>
要使用此自定义表,您需要在YQL可以看到它的位置在线托管它。我已将其上传到Yahoo!的存储空间,这就是为什么URL(store://…
)可能看起来有些奇怪。
现在你正在等待的东西:对你有用的东西!
use "store://github.com/flickr/photosets/getList" as photosets;
select * from photosets where user_id="11414938@N00"
(http://developer.yahoo.com/yql/guide/yql-creating-opentables-chapter.html)功能
以上(只是最后一个查询,因为我已经为你制作了表格)是获取Flickr用户照片集列表所需的全部内容。简单地:
use "store://github.com/flickr/photosets/getList" as photosets;
select * from photosets where user_id="11414938@N00"
最后,要获取属于某个集合的照片,已经有一个名为flickr.photosets.photos
的内置表,因此您甚至不需要use
自定义表格:
select * from flickr.photosets.photos where photoset_id='72157624272957243'