Пока нет встроенной таблицы для вызова метода flickr.photosets.getList
для API Flickr (что вам и нужно). Тогда есть два способа получить данные, которые вы ищете: запросить Flickr с помощью таблицы xml
YQL или создать собственную таблицу, которая может абстрагироваться от деталей доступа к API Flickr.
1. Запрос API Flickr с помощью таблицы XML
Этот подход включает в себя знание нескольких деталей о REST API Flickr, о том, как создаются URL-адреса для запроса к нему, и получение ключа API Flickr для подписи ваших запросов. Это детали, которые YQL часто абстрагирует, так что вам не нужно о них заботиться, но об этом позже.
Подход здесь заключается в том, чтобы использовать таблицу XML, которая при запросе со специально созданным URL-адресом и путем к нужным результатам вернет нужные вам фотосеты. Ниже мы сделаем запрос с использованием моего API-ключа (чтобы вы не получили свой собственный, хотя это было бы неплохо) и запросим фотосеты у разработчика evangelist , который работает в Yahoo (мне пришлось выбрать кто-то, его 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"
( Попробуйте этот запрос в консоли YQL )
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, я опущу детали использования этого на выбранном вами языке программирования и работы с результатами. Начните новый вопрос, если вы не знаете об этом.
Раньше я говорил, что есть другой способ.
2. Создайте собственную таблицу flickr.photosets.getList
Детали построения таблицы на заказ для запроса немного вышли бы за рамки разумного ответа здесь: ознакомьтесь с основами и мелкими деталями, перейдите к документации YQL по этому вопросу на http://developer.yahoo.com/yql/guide/yql-creating-opentables-chapter.html
Сама таблица будет довольно простой и не будет выполнять ничего, кроме простого запроса выше; выгода только в том, что детали скрыты. Итак, сначала я покажу таблицу, а затем, как ее использовать.
Таблица представляет собой XML-документ, описывающий, как общаться с методом 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"
( Попробуйте этот запрос в консоли YQL )
Заключение
Вышеприведенное (только последний запрос, так как я уже сделал для вас таблицу) - это все, что вам нужно, чтобы получить список фотосетов пользователя 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'