Яндекс продолжает открывать API к своим сервисам. На этот раз мы открываем API Яндекс.Подписок в публичное бета-тестирование.

В духе последних веяний этот API тоже построен по идеологии REST и использует авторизацию по протоколу OAuth 2.0. Подробнее про процедуру авторизации можно почитать в документации к OAuth.

С помощью API Яндекс.Подписок можно просматривать посты и статистику непрочитанных постов, редактировать подписки, подписываться на новые потоки, управлять папками, помечать прочитанными посты/папки/потоки, проставлять тэги постам — словом всё, что можно делать из интерфейса Подписок.

Перед выпуском мы устроили небольшой мозговой штурм и накидали список идей, которые можно было бы реализовать с помощью API:

  • Разнообразные виджеты для тулбаров, десктопов и телефонов с количеством непрочитанных постов.
  • Менеджер подкастов, использующий Подписки как хранилище списка подкастов с синхронизацией их прослушанности с мобильным устройством или компьютером.
  • Минималистичный гиковский текстовый интерфейс чтения подписок.
  • Сервис автоматической пометки прочтёнными давнишних неважных сообщений — чтобы, когда пользователь придёт из отпуска, непрочитанных у него было не 2000, а только 50.
  • Подсказчик "мёртвых" подписок, в которых давно ничего не появлялось.
  • Анализатор интересных подписок по стастистике прочитываемости.
  • Экспорт непрочитанных постов в формат, удобный для чтения в электронной книге.
  • Расшаривание списка подписок или определённой папки для использования в виджете своего блога.

Используйте свою фантазию и создавайте свои новые интересные проекты.

Чтобы дать вам почувствовать "вкус" API Подписок, вот короткий пример кода на Питоне, который выводит число непрочитанных сообщений:

# -*- coding:utf-8 -*-
from httplib2 import Http
import lxml.etree


ACCESS_TOKEN = '...' # получить через oauth.yandex.ru
HOST = 'api-lenta.yandex.ru'


def auth_request(url):
'''Создаёт авторизованный объект запроса.'''
headers, response = Http().request(
url, headers={'Authorization': 'OAuth %s' % ACCESS_TOKEN}
)
return response

def get_link(link):
'''Возвращает URL нужного ресурса из списка подписок авторизованного пользователя.'''
response = auth_request('https://%s/subscriptions' % HOST)
xml = lxml.etree.fromstring(response)
links = xml.xpath('/subscriptions/%s' % link)
return links[0].attrib['href']

def get_unread_count():
'''Возвращает число непрочитанных постов.'''
response = auth_request(get_link('stat'))
xml = lxml.etree.fromstring(response)
unreads = xml.xpath('/stat/unread')
return unreads[0].text

if __name__ == '__main__':
print get_unread_count()


Подробнее — в документации.

Мы выпускам API со статусом бета-версии. Нам интересно получить от вас пожелания по функционалу и сообщения об ошибках, о которых можно писать в клуб API Яндекс.Подписок.

Развлекайтесь на зимних каникулах :-)

Собиратели и разматыватели лент

.



@темы: API, ya.ru:author:9887422, ya.ru:text, Блог Яндекса