Яндекс продолжает открывать 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 Яндекс.Подписок.
Развлекайтесь на зимних каникулах
Собиратели и разматыватели лент