dev-blog-final

Дневник разработки #5. Неожиданный финал

Содержание

Введение

Сильное желание не создавать свой собственный велосипед порой может сильно отсрочить решение поставленной задачи, а так как у меня сроки в целом были ничем не ограничены, я долго гуглил, пока не нагуглил-таки IFTTT.Maker. Потрясающе простой интерфейс для вызова всевозможных событий простым запросом через сеть.

IFTTT работает по принципу: если что-то случилось, сделать то-то. Если ко второй части привесить канал TODOist, то в целом выйдет то самое приложение, которое я хотел написать изначально:

  1. Maker принимает запрос
  2. Отправляет данные в TODOist
  3. TODOist формирует новый элемент в списке задач
  4. ПРОФЕТ!

Я был очень рад тому, что кто-то проделал кучу работы за меня, и можно пожинать плоды. Мне оставалось лишь написать кастомынй скрипт для PhantomBot, который будет обрабатывать запрос пользователя и отправлять данные в Maker.

Java

Оказалось, что взять и написать что-то на Java очень сложно, не имея никакого опыта работы с этим языком. Не понимамю, почему разработчики не добавят поддержку jQuery… Но я сам всё написал! Единственный мой косяк, который помог исправить Тоха, был в том, что я забыл Content-Type, и Maker не понимал, что за данные я ему шлю, в итоге элемент списка создавался пустым. Код получился весьма специфичным, он использует классы разработчиков бота и больше нигде не годен:

В JSON собирается имя пользователя, написавшего в чат что-то вроде:

JackyFox: !go Invoker

И первый аргумент (в данном случае «Invoker»). Дальше много-много переопределений, и потом БАЦ — POST-запрос ушел к серверу.

Заключение

Сейчас допишу возврат средств при ошибке передачи данных, чтобы вручную этого не делать (контроль ошибок к счастью предусмотрен), а потом бац-бац и в продакшн =)