- PVSM.RU - https://www.pvsm.ru -
Давно поглядывая в сторону темы ботов для Telegram и Facebook всё не находил времени взглянуть что же это за звери. А главное — не было внятной идеи зачем может понадобиться такой бот в реальной жизни, учитывая что ни Tg ни Fb Messanger в жизни я активно не пользуюсь.
И совершенно случайно представилась возможность немного погрузиться в эту область и решить вполне себе прикладную задачу. Например, купить корм для кота не выходя из чата ))
Тихим субботним утром совершенно случайно наткнулся на заметку что проводится [1] международная(!) онлайн-олимпиада(!!) по языку Perl(!!!). Несмотря на сюрреализм события (о котором не было анонсов ни на одном профильном ресурсе включая Хабр) я записался и в 10.15 утра понедельника получил задание — разработать за 48 часов бот для одного из мессенджеров, реализующий взаимодействие с каким-либо интернет-магазином. Решив что это отличный шанс погрузиться в тему я взялся за задачу.
Выбор интернет-магазина был прост — в Юлмарт [2] я покупаю даже корм для кота. Да и узнать текущую цену на какую-нибудь железку не ставя приложение на телефон бывает иногда нужно.
Задание было получено в понедельник утром и рабочие дела никто не отменял, так что основная часть разработки шла вечером и ночью.
Первая ночь была посвящена написанию парсера мобильной выдачи интернет-магазина и реализации всех необходимых операций с корзиной и оформлением заказа (самовывоз, без регистрации). Юлмарт представлен в разных городах и для полноты картины необходимо было реализовать и выбор текущего города и пункта самовывоза. Так как извращенные парсеры это моя специализация, то особых сложностей с этим не возникло. Единственная засада — пришлось потратить пару часов на понимание почему возникает ошибка при итоговом оформлении заказа. Оказалось, что я слишком быстро требую ответа от интернет-магазина и он не успевает провести заказ по своей внутренней учетной системе. Пятисекундная задержка проблему решила и к утру модуль реализующий API с сайтом Юлмарт был готов.
Псевдо-API умеет:
Фильтры в каталоге я не успел реализовать из-за ограничений по времени. Но базовый функционал есть и его можно попытаться перенести на бот-платформу Telegram о которой к этому моменту я знал лишь то что она существует ))
Спойлер: теперь можно купить корм коту прямо из Телеграма
Теперь пришло время познакомиться с бот-возможностями Telegram API. Так как до того времени Телеграмом я не пользовался это было ускоренное погружение в тему )) Детали расписывать не буду — статей на эту тему достаточно. Отмечу лишь те особенности, на которые я обратил внимание в контексте решения моей задачи. Как оказалось, создать более-менее удобный интерфейс для чат-бота интернет-магазина это та еще задача…
И когда программировал список я еще не понял что можно выдавать несколько ответов (см. пункт 3), а то может быть сделал бы по-другому — под каждой позицией списка свою кнопку «подробнее». Не факт что так было бы лучше, но вдруг.
А так в целом простой и приятный API платформы позволил за ночь сделать чат-бота который умеет все то что было ранее реализовано в псевдо-API.
Включая управление корзиной:
Выбор пункта самовывоза:
И окончательное оформление заказа:
К утру бот был закончен и запущен на тестовом сервере!
Поэтому, если вы будете его мучить — имейте терпение ))
Так как это скорее прототип чат-бота, то его есть куда развивать:
И если у кого-нибудь до этого дойдут руки, то можно сделать это взяв исходники с github'а [4] и зарегистрировав своего бота (другой api-токен) под эту задачу.
А ничего ))
Ответа на свое решение я так и не получил. Напомнив о себе через неделю я получил ответ что «результаты будут вот-вот подведены», а дальше тишина.
Думаю я единственный кто случайно увидел это объявление и отправил какое-то решение. Так что комментарий Ларри Уолла на свой кривой код я так и не получил ))
Это был забавный опыт и следующая целевая платформа — Facebook Messenger. Идея для нового чат-бота уже есть!
Автор: RomanL
Источник [5]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/perl/260697
Ссылки в тексте:
[1] проводится: http://www.akit.ru/olimpiada/
[2] Юлмарт: http://ulmart.ru
[3] @ecom_ulmart_bot: https://telegram.me/ecom_ulmart_bot
[4] с github'а: https://github.com/roman-lugovkin/ecom-ulmart-bot
[5] Источник: https://habrahabr.ru/post/333586/
Нажмите здесь для печати.