Телеграм БОТ shra.ru

Мне интересно было познакомиться с Bot API, который используется в telegram, и в прошлые выходные я написал несложного бота для моего сайта.

Бот доступен по ссылке http://t.me/shrarubot или можно найти по имени в «телеге» — shra.ru.

Команды бота

Бот понимает несколько полезных команд, которые запрашивают данные с сайта.

/lastposts [N=10]
Выдаёт список последних записей блога, где N — кол-во элементов. По умолчанию это 10 последних записей.

/find KEYWORD
Поиск записей по ключевому слову. Выдаёт не более 10 записей.

/read POSTID
Выводит текст записи с указанным POSTID. Знать айди не требуется, т.к. первые две команды (lastposts и find) формируют их автоматически.

Не обязательно начинать команду с «/», т.к. я обрабатываю все текстовые сообщения, а не только те, что посланы как команды.

Нюансы

Как выяснилось, телеграмм поддерживает для HTML-текста лишь несколько тегов: <b>, <i>, <code>, <pre>, <em>, <a>, <strong>. Потому и список не вывести красиво, и картинки в статье показать не получается. (Над последним моментом можно ещё поработать — я думаю конвертировать картинки в ссылки.)

Вторая вещь, с которой я, возможно, не разобрался — это описание команд, которые имеют дополнительные параметры. Мой бот их понимает, т.к. со стороны сервера я могу анализировать приходящие сообщения сколь угодно сложным способом, но задать описание команд для пользователя в диалоге с @botFather я могу лишь вот так:

Т.е. можно указать описания команд без параметров. В итоге пользоваться подсказкой команд в чате получается весьма ограничено. Я ожидал чего то более крутого.

Команды подсвечиваются как ссылки в тексте сообщений. Но они не могут содержать пробелов.

Мой бот понимает все варианты из тех, что выше на скриншоте, но чтобы сформировать команду в виде кликабельной ссылки для пользователя мне приходится использовать вариант 3.

Wodpress специфика

Т.к. блог работает на WP, то архитектурно пришлось реализовывать это в виде плагина. Мне хотелось учесть возможность подключения в будущем нескольких ботов к одному сайту, и я оформил обработку каждого бота в виде отдельного php класса.

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

Данные от ‘телеги’ плагин принимает как WP ajax запросы.

Другие боты

Тематика с telegram-ботом меня заинтересовала как одна из идей реализации своего игрового проекта. Я давно хочу попробовать написание текстовой адвентюры.

Абсолютно точно, что можно обойтись и без ‘телеги’, но в контейнере сайта — текстовая адвентюра выглядит как то слишком просто и неинтересно. Много лишних элементов, которые принадлежат дизайну сайта, отвлекающих от игры.

Ясно, что возможно сделать особый дизайн специально для страницы с игрой, но слишком много мелочей и нюансов, которые мне не нравятся. И это меня отталкивает от реализации.

А выполненная в виде telegram bot-а — где нет ничего лишнего, а только диалог с ботом — игра смотрится иначе. Это как раз тот контейнер, оболочка, в которой есть только то, что нужно.

Кроме того, иногда меня спрашивают, не мог бы я написать им telegram-бота? Сейчас уже, возможно, возьмусь за подобный заказ.

Написать комментарий

 

Комментарии к «Телеграм БОТ shra.ru»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: