Как стать автором
Обновить

Трубный ребенок: как объединять веб-сервисы в новые инструменты

Время на прочтение7 мин
Количество просмотров19K
Отличительная особенность многих веб-приложений в том, что они, практически соответствуя канонам UNIX-way, превосходно выполняют одну функцию, лишь иногда предполагая некоторое ограниченное взаимодействие. Но для того чтобы аналогия была полной, не хватает главного элемента — аналога пайпов, который позволил бы связывать между собой сервисы для получения нового функционала. Мы подобрали инструменты, отлично решающие эту задачу, — различные мэшапы и автоматизаторы, способные связать разрозненные продукты в единое рабочее окружение.





Yahoo Pipes





Первым в нашем cписке идут «трубы» — бесплатный сервис, который по праву можно назвать «дедушкой» жанра машапов. Основная идея — обработка потоков текста путем каскадного навешивания различных фильтров, агрегаторов и обработчиков. Чувствуется, что разработчики вдохновлялись старым добрым юниксовым пайплайном. Пользователю предлагается воспользоваться базой уже существующих пайпов или создать свой. По сути, каждый пайп — это небольшая программа, которая пишется или, скорее, рисуется в специальном редакторе.
В основе пайпсов лежит несколько базовых понятий:

  1. Источник данных (все крутится вокруг формата RSS, то есть это сам RSS-фид, поисковая выдача либо запрос на специальном языке YQL).
  2. Пользовательский ввод — данные, которые можно вводить в специальные поля пайпа для изменения логики его работы. Например, ник в твиттере или поисковый запрос.
  3. Обработчики — множество различных функций, которые на вход получают данные из пользовательского ввода или источника, что-либо с ними делают и выдают результат своей работы. Кстати, в качестве обработчика можно использовать даже другой пайп.


Также стоит отметить, что результат выполнения пайпа можно получать в различных форматах при запросе специального адреса вида: pipes.yahoo.com/pipes/pipe.run?_id=PIPE_ID&_render=json, что делает возможным использовать его в своих скриптах или на странице сайта.
Все это, с одной стороны, делает пайпы довольно гибким инструментом для обработки данных, с другой — добавляет некоторую сложность в написании своих «скриптов». Кстати, на сайте есть еще и куча уже готовых и работающих пайпов на разные случаи жизни. Например:



IFTTT





If This Then That — настоящий любимчик публики, один из самых популярных сервисов подобного рода. Он предлагает несколько иной подход к обработке данных, нежели Yahoo Pipes, — в основе лежит идея веб-хуков. IFTTT взаимодействует со множеством API различных сервисов, позволяя создавать рецепты — мини-скрипты определенного формата. Рецепт состоит из триггера — условия, по которому обрабатываются данные (новый файл в дропбоксе, новый твит, новая фотография в инстаграме), и действия, которое выполняется в случае срабатывания триггера (написать письмо, изменить статус в фейсбуке). Данные обновляются периодически, раз в 15 минут, поэтому особой задержки в реакции на триггеры не происходит (кстати, некоторые триггеры срабатывают, как только происходит определенное событие, — в IFTTT их называют «молниеносными»). Стоит отметить, что, несмотря на всю простоту идеи, IFTTT довольно мощный сервис, позволяющий настраивать синхронизацию и автоматизацию различных сервисов. При создании рецепта существует еще такое понятие, как ингредиенты, — по сути, контекст выполнения триггера, в котором присутствуют переменные значения, такие как текст твита или тема письма. Их можно и нужно использовать в действиях (если, конечно, они получают какие-то данные на ввод). Замечу еще, что сервис ну очень приятно выглядит и имеет довольно большую базу уже готовых рецептов (можно также поделиться и своими). Из тех, которыми пользуюсь я: напоминание о погоде на почту, а также автоматическая загрузка понравившихся фотографий на дропбокс.

Также интересными мне показались следующие рецепты:

  • Ведение журнала всех понравившихся видео с YouTube в Evernote. Для этого создадим новый рецепт, в качестве «This» укажем канал YouTube, триггер New favorite video, а в качестве «That» — канал Evernote, действие Append to note. Осталось ввести настройки действия (журнал, в который сохранять заметку, имя заметки и тому подобное) — и готово.
  • Автоматический загрузчик файлов из Gmail в Dropbox. Рецепт состоит из триггера Gmail -> New email from search и действия Dropbox -> Add file from URL. Дополнительно в настройках указываем поле «Search for: downloadthisfile» и назначаем папку для загрузки. Теперь можно самому себе послать по почте ссылку на файл — он автоматом окажется в папке дропбокса.


Zapier





Zapier появился чуть позже IFTTT, но логика работы тут полностью такая же: есть рецепты (только здесь они называются запы), события и действия. Есть база готовых запов и возможность создавать свои. На самом деле оба мэшапа очень похожи, и все их различия появляются в результате разницы подхода: если IFTTT — это сервис автоматизации твоей социальной жизни, который должен просто облегчить жизнь, то Zapier — это бизнес-инструмент, который может решать и вполне рабочие вопросы (для этого в сервисах присутствуют Redmine, Zendesk, Asana, Shopify и PayPal). Основная киллер-фича запиера — количество сервисов. Если в IFTTT их в районе 60, то тут их около 250. Создатели, кажется, взяли курс на подключение всего, что только можно, — и это здорово. Самый главный минус (разумеется, для пользователей) — сервис платный. Конечно, тут есть бесплатный план, для того чтобы можно было попробовать сервис, но его возможности совершенно несравнимы с бесплатными возможностями IFTTT. Цены, кстати, тоже не символические — минимальная подписка стоит 15 долларов в месяц, поэтому мне кажется, что целесообразность использования запиера упирается в то, окупается ли его цена лично тебе. И если, например, он сильно сэкономит время фрилансеру, освобождая от неприятной рутины, — то почему бы и нет? Примеры рабочих действий:

  • Автоматическое создание тикета в Redmine из записи в Evernote. Событием выбираем Evernote -> New Note, действие — Redmine -> Create Issue. Не забываем указать имя журнала в Evernote, для которого применим данный зап.
  • Напоминание в HipChat при создании карточки в Trello. Тут все совсем просто: событием служит Trello -> New Card, в роли действия HipChat -> Create Message.


Google Alerts





А это уже сервис от поискового гиганта. В его основе лежит идея мониторинга результатов поискового запроса с течением времени. Фактически ты можешь настроить «алерты» на появление новых результатов по запросу. На самом деле, что может быть логичней и правильней — ведь база гугла обновляется все быстрее и быстрее. Они умеют фильтровать всякий мусор и отбирать наиболее релевантные данные.

В списке параметров оповещения:

  • сам запрос (поддерживается также синтаксис поисковых запросов гугла);
  • тип запроса (все, новости, блоги, видео, обсуждения, книги);
  • частота уведомлений (в режиме реального времени, раз в день, раз в неделю);
  • фильтр лучших результатов или всех;
  • отправка результатов на email или в виде RSS-фида.


Что таким образом можно мониторить? Я думаю, каждому — свое. Кто-то может мониторить скидки на товары или услуги, кто-то — новости о падениях метеоритов. А можно вбить свое имя и ник и получать новые упоминания в интернете. Кстати, еще одним вариантом использования будет отслеживание новостей о новых уязвимостях какого-то продукта, например: «Rails Vulnerability» — для оповещений о новых проблемах в безопасности фреймворка.

Итак, в качестве полезных юзкейсов:

  • отслеживание скидок, купонов. Для этого создаем алерт со словами «coupon code» OR «discount code»;
  • оповещение при появлении новых упоминаний о человеке — алерт с именем и ником в твиттере.


Wappwolf





Мэшап-сервис для работы с файлами. Он схож в идее с IFTTT, но с уклоном на обработку файлов. Единственное событие здесь — добавление в папку облачного хранилища (поддерживаются Dropbox, Google Drive, SkyDrive, Box) файла, а вот действий здесь может быть довольно много:

  • Синхронизация с другими облачными хранилищами Box, SkyDrive, Google Drive, а также с FTP-сервером.
  • Для изображений возможны различные простые операции, типа изменения размера, перевода в оттенки серого, поворот, добавление водяного знака.
  • Для звуковых файлов — конвертация в другой формат.
  • Для текстовых файлов: конвертация в PDF, форматы электронных книг, загрузка на Kindle, распечатка через облачный принтер Google.
  • Для всех типов файлов: добавление в архив в архив, переименование, шифрование/дешифрование.


В принципе, удобно, если нужно настроить какую-то автоматическую обработку файлов (например, новых скриншотов), а другие сервисы ничего для этого предложить не могут.

  • Для настройки синхронизации папки Dropbox с FTP-сервером необходимо авторизовать веб-приложение, выбрать папку для синхронизации (или создать новую) и ввести реквизиты FTP-сервера.
  • Для автоматического конвертирования аудиофайла также укажем нужную папку, для которой будет работать действие, выберем действие Convert Audio и соответствующий формат (MP3, AIFF, FLAC, M4A, OGG, WAV или WMA). Удобно, если подходящего конвертера под рукой не оказалось.


on{x}





Несмотря на то что мы сегодня рассматривали исключительно веб-приложения, я решил добавить этот интересный проект от Microsoft. on{X} — это приложение для андроида, которое позволяет делать примерно то же самое, что и описанные выше сервисы, — выполнять действие при наступлении определенного условия. Из интересных особенностей:

  • Правила (они же рецепты в терминологии IFTTT) пишутся на JavaScript.
  • В качестве триггеров могут выступать различные источники данных (в том числе и сенсоры телефона): погода, время, новости, сигнал Wi-Fi-сети, уровень батареи и GPS-положение.
  • В качестве действий можно также пользоваться API телефона, показывая уведомления, запуская приложения и совершая другие действия.


Проект скорее экспериментальный, но это не помешало ему обрасти сообществом энтузиастов. Разумеется, в лучших традициях подобных сервисов, есть возможность создавать новые рецепты, обмениваться ими и устанавливать (считав телефоном специальный QR-код).

Поскольку, в отличие от предыдущих проектов, здесь используется API телефона, а рецепты пишутся на настоящем языке программирования, у разработчика появляется дополнительная свобода для творчества. Из наиболее интересных правил можно отметить:

  • правило, заставляющее телефон проиграть рингтон, если звонит кто-то из трех твоих самых частых контактов, даже если телефон находится в тихом режиме www.onx.ms/#!recipeEditPage?scriptId=ringOnFrequentCaller;
  • напоминание взять с собой зонт при первой разблокировке экрана с утра, в случае если сегодня по прогнозу ожидается дождь www.onx.ms/#!recipeEditPage?scriptId=weatherReminder.


Автор: Михаил Еловских.


Впервые опубликовано в журнале «Хакер» от 07/2013.

Публикация на Issuu.com

Подпишись на «Хакер»




Теги:
Хабы:
Всего голосов 27: ↑22 и ↓5+17
Комментарии7

Публикации

Информация

Сайт
xakep.ru
Дата регистрации
Дата основания
Численность
51–100 человек
Местоположение
Россия

Истории