ПоискПочтаКалендарьДеньгиМой КругФоткиНародОткрытки
Войти


Чтобы получить доступ ко всем возможностям Я.ру, создайте страницу или , если у вас она уже есть.
userpic

премодерируемый клуб  

Присоединившись к клубу, вы сможете вывешивать фотки в галерее и создавать новые темы для обсуждения. Обсуждаемые темы клуба будут появляться на странице «Что нового».
Вступить в клуб
О клубе
9 декабря 2010 года, 12:25
О клубе
API сервиса Подписки позволяет создавать приложения для чтения и работы с RSS-потоками. В клубе вы можете оставлять свои комментарии и пожелания по развитию API сервиса Подписки.
Нам было бы интересно узнать о вашем опыте использования API, и приложениях, сделанных на его основе.

Ознакомиться с документацией можно тут же.
.
В клубе действуют правила.
Правила клуба

В клубе запрещено:

  1. Писать сообщения, противоречащие законодательству РФ.
  2. Оскорблять других участников клуба.
  3. Размещать материалы эротического характера.
  4. Размещать рекламу.
  5. Размещать записи, не соответствующие теме клуба.

В случае нарушения правил ваши записи могут быть удалены, а вы сами – исключены из клуба.

записи по месяцам · меткам · типам

выделить все / снять выделение

Показать
Globus написал
9 марта 2011 года, 13:06
userpic
подписки не подписывают =)
в гугл ридере все ок, а Я.Подписки не хавают http://feeds.feedburner.com/u-sm/SWLZ из за чего могут быть проблемы?
.
rukola написала
9 декабря 2010 года, 12:09
userpic
Документация API сервиса Подписки

Авторизация


Для авторизации пользователя используется протокол OAuth 2.0


Подробнее о процедурах авторизации через oauth.yandex.ru можно почитать в документации к данному сервису.




Ресурсы


API построено по REST-принципам.
Сущности, которыми можно управлять через API, представлены в виде ресурсов: список постов, данные о посте, подписки, поток, папка и т.п.
C этими ресурсами можно производить различные операции, например:


  • прочитать их содержимое и текущее состояние (GET)

  • изменить их содержимое и состояние и записать в ресурс (PUT)

  • удалить их (DELETE)

  • сделать что-то специальное, например, добавить новый элемент (POST)


У каждого ресурса есть свой уникальный URL.


Cписок всех ресурсов можно найти в справочнике ресурсов.




Регистрация пользователей


Любому зарегистрированному пользователю Яндекса сервис Подписок доступен в ограниченном режиме: пользователь может просмотреть содержимое потоков, запросив их по url или md5. Это полезно, например, для предварительного просмотра потока.



Чтобы начать пользоваться основными возможностями сервиса, нужно дополнительно зарегистрировать для пользователя учетную запись Подписок. Она дает возможность управлять своими подписками, следить за статусами сообщений (прочитано или нет), добавлять метки к постам и т.д. Для регистрации учетной записи нужно сделать пустой POST-запрос на ресурс /initiate.




Навигация


URL'ы ресурсов по возможности не должны составляться вручную на клиентской стороне, а должны формироваться из ответов системы. В идеале о системе должен быть известен только один корневой URL, а всё остальное должно быть достижимо из него (на практике, как водится, это не всегда так).



Например, прочитав ресурс постов, можно получить полные URL'ы ресурсов до конкретных постов и их метаинформации, потоков и папок. Из URL'а списка потоков можно получить ссылку на конкретный поток и папку.




Форматы данных


Все ресурсы выдают и принимают данные в собственных xml-форматах (см. ниже). В комментариях к форматам опущены описания очевидных полей (author, title, id и т.д.).




Список постов


Content-Type: application/x-yandex-lenta+xml; type=posts



<posts>
<current md5="1d45ed4b56f9c7a2a8af6e3f5c764425"/>
<link href="https://api-lenta.yandex.ru/posts?nav=1d45ed4b56f9c7a2a8af6e3f5c764425.22629.1287983090
&read_status=any&items_per_page=20&md5=1d45ed4b56f9c7a2a8af6e3f5c764425" rel="next"/>
<link href="https://api-lenta.yandex.ru/posts?nav=1d45ed4b56f9c7a2a8af6e3f5c764425.22669.1287983090
&
read_status=any&items_per_page=20&md5=1d45ed4b56f9c7a2a8af6e3f5c764425" rel="previous"/>
<subscriptions unread_count="00">
<group unread_count="00" group_id="1">
<title>Папка</title>
<link href="https://api-lenta.yandex.net/subscriptions/groups/1"/>
</group>
</subscriptions>
<feeds_data>
<feed lang="rus" status="200" unread_count="10">
<rate>4</rate>
<md5>1d45ed4b56f9c7a2a8af6e3f5c764425</md5>
<img_normal src="http://pix2.blogs.yandex.net/getavatar?id=2eijcek7n5.54
&prefix=normal" height="100" width="100"/>
<img_middle src="http://pix2.blogs.yandex.net/getavatar?id=2eijcek7n5.54
&
prefix=middle" height="50" width="50"/>
<img_small src="http://pix2.blogs.yandex.net/getavatar?id=2eijcek7n5.54
&prefix=small" height="25" width="25"/>
<description>абстрактный поток</description>
<url href="http://username.livejournal.com/data/rss"/>
<html href="http://username.livejournal.com/"/>
<link href="https://api-lenta.yandex.ru/subscriptions/feeds/1d45ed4b56f9c7a2a8af6e3f5c764425"/>
<favicon href="http://favicon.yandex.net/favicon/livejournal.com"/>
<title>terapevt</title>
</feed>
</feeds_data>
<post id="1d45ed4b56f9c7a2a8af6e3f5c764425.22649.1287983090">
<meta href="https://api-lenta.yandex.ru/posts/1d45ed4b56f9c7a2a8af6e3f5c764425.22649.1287983090/meta"/>
<content href="https://api-lenta.yandex.ru/posts/1d45ed4b56f9c7a2a8af6e3f5c764425.22649.1287983090"/>
<archive/>
<read/>
<tags/>
<comments_info count="0" last_time=""/>
<entry>
<link href="http://www.site.ru/index.shtml?2010/10/25/1601814"/>
<comments href=""/>
<id>http://www.site.ru/index.shtml?2010/10/25/1601814</id>
<issued>2010-10-25T04:25:38Z</issued>
<guid>http://www.site.ru/index.shtml?2010/10/25/1601814</guid>
<first_line>Тут содержится какой-то контент</first_line>
<title>Заголовок</title>
<content type="xhtml">Тут содержится какой-то контент</content>
<categories>
<category>Новости</category>
</categories>
</entry>
</post>
</posts>

current — содержит атрибут, указывающий, какая страница была запрошена.


md5 — страница потока


group_id — страница папки


tag_id — страница тэга


<link href="..." rel="next"/> и <link href=".." rel="previous"/> — элементы паджинации


subscriptions — содержит подписки пользователя


feeds_data — содержит данные о потоке/ах, на которые пользователь не подписан


Далее следуют сообщения с контентом и метаинформацией



Содержимое поста


Content-Type: application/x-yandex-lenta+xml; type=post



<post id="807dba6d4f3a9d31e3785bfbe0144bea.1996.1288002433">
<meta href="https://api-lenta.andex.ru/posts/807dba6d4f3a9d31e3785bfbe0144bea.1996.1288002433/meta"/>
<content href="https://api-lenta.yandex.ru/posts/807dba6d4f3a9d31e3785bfbe0144bea.1996.1288002433"/>
<feed href="https://api-lenta.yandex.ru/subscriptions/feeds/807dba6d4f3a9d31e3785bfbe0144bea"/>
<comments_info count="3" last_time="2010-10-25T16:21:53"/>
<author_data>
<img_normal src="http://pix2.blogs.yandex.net/getavatar?id=bv7mc3ogil.4112
&prefix=normal" height="100" width="100"/>
<img_middle src="http://pix2.blogs.yandex.net/getavatar?id=bv7mc3ogil.4112
&prefix=middle" height="50" width="50"/>
<img_small src="http://pix2.blogs.yandex.net/getavatar?id=bv7mc3ogil.4112
&prefix=small" height="25" width="25"/>
<html href="http://username.livejournal.com/"/>
<title>username</title>
</author_data>
<entry>
<link href="http://community.livejournal.com/community/531407.html"/>
<comments href="http://community.livejournal.com/community/531407.html"/>
<id>http://community.livejournal.com/community/531407.html</id>
<author>http://username.livejournal.com/</author>
<issued>2010-10-25T10:27:08Z</issued>
<guid>http://community.livejournal.com/community/531407.html</guid>
<first_line>Пример сообщения для API</first_line>
<title>Заголовок</title>
<content type="xhtml">Пример сообщения для API</content>
<categories>
<category>Новости</category>
</categories>
<mood>Тестовое настроение</mood>
<music>музыка</music>
</entry>
</post>

comments_info — информация о комментариях к посту


count — количество комментариев. Если count=0, возможен один из вариантов: либо комментариев у поста нет, либо в rss-потоке нет URL, откуда можно скачивать эти комментарии.

last_time — время последнего комментария.





img — аватарка автора поста разных размеров


html — url страницы автора


entry — данные о посте


link — ссылка на оригинальную версию поста


comments — ссылка на комментарии


issued — время написания поста


guid — cтрока, уникальным образом идентифицирующая пост


first_line — краткая версия поста для предварительного просмотра


title — заголовок


content — контент поста


enclosure — вложение, некий медиа-объект


categories — перечисление категорий, к которым относится данный пост


author_data — информация об авторе поста




meta — URL ресурса с метаданными поста


content — URL ресурса с контентом поста


feed — URL ресурса потока



Метаданные о посте


Content-Type: application/x-yandex-lenta+xml; type=post



<post id="b7be01f9245bd8ad4bd621cce4e7c2bf.1437.1288006441">
<meta href="https://api-lenta.yandex.ru/posts/b7be01f9245bd8ad4bd621cce4e7c2bf.1437.1288006441/meta"/>
<content href="https://api-lenta.yandex.ru/posts/b7be01f9245bd8ad4bd621cce4e7c2bf.1437.1288006441"/>
<feed href="https://api-lenta.yandex.ru/subscriptions/feeds/b7be01f9245bd8ad4bd621cce4e7c2bf"/>
<read/>
<archive/>
<favorite/>
<tags>
<tag href="https://api-lenta.yandex.ru/posts?items_per_page=20&read_status=any&nav=default&tag_id=4">тэг</tag>
</tags>
</post>

Нижеперечисленные тэги можно редактировать.


read — наличие этого элемента обозначает, что пост прочитан, если отсутвует - непрочитан


archive — обозначает, что пост является архивным и его нельзя пометить как непрочитанный


favorite — его наличие означает, что пост отмечен как важный


tags — содержит список тегов, которыми отмечен пост. В элементе tag указывается название тэга и ссылка на список постов, помеченных этим тэгом.




meta — URL ресурса с метаданными поста


content — URL ресурса с контентом поста


feed — URL ресурса потока



Поток


Content-Type: application/x-yandex-lenta+xml; type=feed



<feed lang="rus" status="200" unread_count="2">
<group_id href="https://api-lenta.yandex.ru/subscriptions/groups/1">1</group_id>
<rate>1655</rate>
<md5>b7be01f9245bd8ad4bd621cce4e7c2bf</md5>
<img_normal src="http://pix2.blogs.yandex.net/getavatar?id=u2e7fg423t.2&prefix=normal"
height
="100" width="100"/>
<img_middle src="http://pix2.blogs.yandex.net/getavatar?id=u2e7fg423t.2&prefix=middle"
height="50" width="50"/>
<img_small src="http://pix2.blogs.yandex.net/getavatar?id=u2e7fg423t.2&prefix=small"
height="25" width="25"/>
<description/>
<url href="http://clubs.ya.ru/club/rss/posts.xml"/>
<html href="http://clubs.ya.ru/club/"/>
<link href="https://api-lenta.yandex.ru/subscriptions/feeds/b7be01f9245bd8ad4bd621cce4e7c2bf"/>
<favicon href="http://favicon.yandex.net/favicon/my.ya.ru"/>
<title>Просто блог</title>
</feed>

group_id — папка, в которой лежит поток


lang — язык потока


status — статус при последнем обращении к потоку


unread_count — число непрочитанных постов в этом потоке





group_id — идентификатор папки, в которой данный поток лежит. Если отсутсвует, то поток лежит в корневой папке. Можно редактировать удаляя данный элемент или изменяя значение.


rate — число людей, читающий этот поток в ЯПодписках


md5 — идентификатор потока


img — аватарки блога в разном размере


description — описание


url — ссылка на URL потока


html — ссылка на страницу, на которой можно найти данный поток


favicon — ссылка на favicon потока




link — адрес ресурса данного потока



Папка


Content-Type: application/x-yandex-lenta+xml; type=group

<group unread_count="276" group_id="12">
<title>Книги</title>
<collapsed/>
<link href="https://api-lenta.yandex.ru/subscriptions/groups/12"/>
</group>

unread_count — число непрочитанных сообщений в этой папке


collapsed — наличие этого элемента обозначает, что папка свернута. Его можно удалять и добавлять.


link — адрес ресурса данной папки



Подписки


Content-Type: application/x-yandex-lenta+xml; type=subscriptions



<subscriptions unread_count="10">
<group unread_count="2" group_id="1">
<title>Папка</title>
<collapsed/>
<link href="https://api-lenta.yandex.ru/subscriptions/groups/1"/>
<feed lang="rus" status="200" unread_count="2">
<rate>1655</rate>
<md5>b7be01f9245bd8ad4bd621cce4e7c2bf</md5>
<img_normal src="http://pix2.blogs.yandex.net/getavatar?id=u2e7fg423t.2&prefix=normal" height="100" width="100"/>
<img_middle src="http://pix2.blogs.yandex.net/getavatar?id=u2e7fg423t.2&prefix=middle" height="50" width="50"/>
<img_small src="http://pix2.blogs.yandex.net/getavatar?id=u2e7fg423t.2&prefix=small" height="25" width="25"/>
<description/>
<url href="http://clubs.ya.ru/club/rss/posts.xml"/>
<html href="http://clubs.ya.ru/club/"/>
<link href="https://api-lenta.yandex.ru/subscriptions/feeds/b7be01f9245bd8ad4bd621cce4e7c2bf"/>
<favicon href="http://favicon.yandex.net/favicon/my.ya.ru"/>
<title>Просто блог</title>
</feed>
</group>
<feed lang="rus" status="200" type="blog" unread_count="8">
<rate>2036</rate>
<md5>fa7fb15516175bc5a5b085b321c5bbc1</md5>
<img_normal src="http://pix2.blogs.yandex.net/getavatar?id=577az9dd0e.2&prefix=normal" height="100" width="100"/>
<img_middle src="http://pix2.blogs.yandex.net/getavatar?id=577az9dd0e.2&prefix=middle" height="50" width="50"/>
<img_small src="http://pix2.blogs.yandex.net/getavatar?id=577az9dd0e.2&prefix=small" height="25" width="25"/>
<description>Пример потока livejournal.com</description>
<url href="http://username.livejournal.com/data/rss"/>
<html href="http://username.livejournal.com/"/>
<link href="https://api-lenta.yandex.ru/subscriptions/feeds/fa7fb15516175bc5a5b085b321c5bbc1"/>
<favicon href="http://favicon.yandex.net/favicon/livejournal.com"/>
<title>username</title>
</feed>
<stat href="https://api-lenta.yandex.ru/stat"/>
<settings href="https://api-lenta.yandex.ru/settings"/>
</subscriptions>

stat — url ресурса статистики с числом новых и непрочитанных сообщений


settings — url ресурса настроек пользователя



Собраны все подписки пользователя. Причем информация о потоках разложена по папкам, в которых они находятся.




Ресурс подписок используется для добавления новых потоков и папок.


Для этого нужно сделать POST-запрос с Content-Type: application/x-yandex-lenta+xml; type=feed, в котором передаётся описание потока (см. выше). Не все поля являются обязательными, достаточно указать источник потока (url или md5). Также можно сразу указать группу и альтернативное название. Например:


<feed>
<url>http://username.livejournal.com/</url>
<group_id>1</group_id>
<title>Название</title>
</feed>

Для того чтобы добавить новую папку пользователю, необходимо сделать POST-запрос с Content-Type: application/x-yandex-lenta+xml; type=group


<group>
<title>бла</title>
</group>



Ресурс подписок также используется для пометки потока или папки как прочитанные.


Для того чтобы пометить папку или поток прочитанными, необходимо сделать POST-запрос с Content-Type: application/x-yandex-lenta+xml; type=read


Пометить поток как прочитанный:


<read>
<md5>2342f5186e6b49d66d647f0f205835c9</md5>
</read>

Пометить папку как прочитанную:


<read>
<group_id>14</group_id>
</read>


Настройки


Content-Type: application/x-yandex-lenta+xml; type=settings



<settings>
<default_group>all</default_group>
</settings>

default_group — папка пользователя по умолчанию. Это либо целое число — идентификатор группы, либо all — идентификатор, обозначающий чтение всех потоков подряд. Может быть отредактировано.



Статистика


Content-Type: application/x-yandex-lenta+xml; type=stat



<stat>
<unread href="https://api-lenta.yandex.ru/stat/unread">3000</unread>
<new href="https://api-lenta.yandex.ru/stat/new">6</new>
</stat>

unread — число непрочитанных сообщений


new — число новых сообщений, т.е. число непрочитанных сообщений пользователя с момента его последней активности на сервисе.



Обращение к ресурсу статистики может быть более "затратным", чем к отдельным ресурсам новых и непрочитанных сообщений. Поэтому, если необходимо только одно из этих чисел, лучше использовать отдельный ресурс (или новых, или непрочитанных сообщений).



Число непрочитанных сообщений


Content-Type: application/x-yandex-lenta+xml; type=stat


<stat>
<unread href="https://api-lenta.yandex.ru/stat/unread">3000</unread>
</stat>

Число новых сообщений


Content-Type: application/x-yandex-lenta+xml; type=stat


<stat>
<new href="https://api-lenta.yandex.ru/stat/new">6</new>
</stat>



Паджинация


В списке постов присутствуют элементы <link href="..." rel="next"/> и <link href=".." rel="previous"/>. Это указатели на следующую и предыдущую страницы.

В случае, если один из этих элемент присутствует в выдаче, значит, список выдан не полностью, и по URL из атрибута href можно получить остальное. Методика выборки полного списка такая: выбирать списки один за другим, пока в них есть этот атрибут.




Примеры


Получить число новых сообщений


GET /stat/new HTTP/1.1
Host: api-lenta.yandex.ru
Content-type: application/x-yandex-lenta+xml; type=stat; charset=utf-8
Authorization: OAuth nA8bhk6qfL

HTTP/1.1 200 OK
Content-Length: 107
Etag: "c1840734ab228e13c24a55d54240208c437768eb"
Content-Type: application/xml; charset=UTF-8
Server: TornadoServer/0.1
Date: Wed, 10 Nov 2010 10:59:27 GMT

<?xml version="1.0" encoding="utf-8"?><stat><new href="https://api-lenta.yandex.ru/stat/new">8</new></stat>



Подписаться на поток


POST /subscriptions HTTP/1.1
Host: api-lenta.yandex.ru
Content-Type: application/x-yandex-lenta+xml; type=feed; charset=utf-8
Content-Length: 74
Authorization: OAuth nA8bhk6qfL

<feed><url>http://tema.livejournal.com/</url><group_id>1</group_id></feed>

HTTP/1.1 200 OK
Content-Length: 43
Content-Type: application/xml; charset=UTF-8
Server: TornadoServer/0.1

<?xml version="1.0" encoding="utf-8"?><ok/>



Справочник


Хосты


API: https://api-lenta.yandex.ru


OAuth-авторизация: https://oauth.yandex.ru



Ресурсы


Таблица, приведенная ниже, содержит описание всех ресурсов со всеми доступными для них методами.




РесурсURLМетодыКомментарии


Список постов/posts?{group_id,md5,url,tag_id}&nav&items_per_page&read_statusGETИз group_id, md5,
url, tag_id должен быть указан только один.
Параметры nav, items_per_page, read_status - необязательные



Содержимое поста/posts/{md5.item_no.store_time}GET 


Метаданные о посте/posts/{md5.item_no.store_time}/metaGET, PUT 


Подписки/subscriptionsGET, POST

application/x-yandex-lenta+xml;

type=feed
или application/x-yandex-lenta+xml; type=group или application/x-yandex-lenta+xml; type=read




Поток/subscriptions/feeds/{md5}GET, PUT, DELETE 


Папка/subscriptions/groups/{group_id}GET, PUT, DELETEgroup_id - только целое число


Настройки/settingsGET, PUT 


Статистика/stat, /stat/new, /stat/unreadGET 


Инициализация нового пользователя/initiatePOST 



Описание параметров



group_id — идентификатор группы, либо целое число, либо all


md5 — идентификатор потока


url — URL потока


tag_id — идентификатор тэга, а также значение favorite(можно получить все важные сообщения)




nav — строка навигации. Принимает значение default или внутренний id поста (id из атрибута элемента post).


items_per_page — число запрошенных постов


read_status — статус запрашиваемой страницы, принимает 2 значения:


  • any — выдавать все посты

  • unread — выдать только непрочитанные посты


  • Ошибки



    Http-кодсообщение комментарий

    400 Argument arg must be integer неправильный тип аргумента 

    400 Argument arg required аргумент обязательно должен быть указан

    400 Bad xml document невалидный xml-документ

    400 Root tag in request request_root_tag don't match with root_tag в полученном xml-документе неправильный корневой элемент

    400 Must be either group_id or url or md5 or tag_id Должен быть указан только один параметр из списка: group_id, url, md5, tag_id

    400 Must be either url or md5 должен быть указан url или md5

    400 Must be either md5 or group_id должен быть указан feed или group

    400 md5 in url and md5 in body don't match md5 в xml-документе не совпадает с md5 в адресе ресурса

    400 group_id in url and group_id in body don't match

    group_id в xml-документе не совпадает с group_id

    в адресе ресурса


    400 Failed to resolve feed : такой поток не найден

    400 Missing parameter пропущен параметр, указывается в сообщении

    400 Invalid parameter параметру передано неправильное значение

    400 Not found group with group_id папка не найдена

    400 Group with group_title existed папка с таким названием уже есть

    400 Failed to get item store_time не удалось получить store_time

    400 Not found tag with tag_id тэг не найден

    401 token expired или authorization required

    содержит header WWW-Authenticate: OAuth realm="lenta",


    error="error", проблемы с токеном - закончился срок действия

    или нет такого токена


    403 User is not subscribed to the service пользователь не иcпользует данный сервис

    404 Not Found не найден

    405 Method Not Allowed метод не разрешен

    415 Header Content-Type must be указан неподдерживаемый заголовок Content-Type

    504   таймаут соединения

    502   сервер получил некорректный ответ

    503   сервер временно недоступен



.

 

Что получается:    изменить 
Подписаться на комментарии к записи

Получать уведомления о всех ответах в этом обсуждении.

 
Отписаться от комментарев к записи

Получать уведомления только о тех ответах в этом обсуждении, которые адресованы лично вам.

 
К сожалению, комментарий не удалось отправить. Попробуйте ещё раз.я в курсе