Featured image of post Выбор платформы для чат-ботов под свои проекты - cравнение альтернатив Telegram

Выбор платформы для чат-ботов под свои проекты - cравнение альтернатив Telegram

В связи с блокировкой Telegram в РФ актуальным встал вопрос "На какую платформу для чат-ботов делать ставку?" В этой заметке я буду сравнивать популярные бот-платформы, на предмет того, где удобнее всего организовать уведомления/интерактив для небольших любительских проектов. Главный лейтмотив - простота. Чем меньше усилий уходит на организацию чат-бота, тем лучше.

В связи с блокировкой Telegram в РФ актуальным стал вопрос “На какую платформу для чат-ботов делать ставку?” Исторически именно Telegram выступил драйвером революции чат-ботов в 2016-2017 годах из-за своей простоты для разработчиков и удобства приложения. С введением блокировки мы можем потерять одну из самых удобных платформ для организации работы чат-ботов.

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

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

Telegram

Что ищем

Spoiler: Да, все это есть в Telegram.

  • Простое создание и администрирование бота. По возможности, создание отдельного специального аккаунта для бота/приложения в привязке к своему основному аккаунту.
  • Простая авторизация, без OAuth. Да, OAuth - это распространенный стандарт, но каждый сервис делает его по своему и его реализация в приложении - отдельные затраты времени.
  • Возможность использовать polling. В пет-проектах настройка webhooks добавляет существенно больше сложности там, где это совсем не требуется.
  • Удобное клиентское приложение: распространённое, кроссплатформенное, с push-нотификациями, нетребовательное к ресурсам.
  • Популярность платформы. Возможность подключения к боту других пользователей.
  • Возможность создания интерактивных меню/кнопок в чате. Готовые ответы или команды существенно упрощают пользовательское взаимодействие.

Перед тем, как начать разбор кандидатов, отмечу те платформы, для которых сам ранее пробовал написать ботов: Facebook (неудачно), Twitter, Discord, IRC.


WhatsApp

WhatsApp

Официально WhatsApp не поддерживает ботов. Тем не менее, многие компании их используют, а на GitHub много библиотек под разные языки для самостоятельного создания ботов. Боты, де факто, выступают как неофициальные клиенты, то есть без специальных учетных записей.

Плюсы:

  • Распространенность клиента
  • Есть polling
  • Авторизация через номер телефона и пароль

Минусы:

  • Открытый API отсутствует, необходимо использовать какую-либо из библиотек для имитации клиента
  • Самая популярная библиотека для Python после беглого изучения показалась достаточно сложной и контринтуитивной
  • Риски блокировки аккаунта
  • Отсутствие полноценной поддержки имен пользователей, вся идентификация реализуется через телефонные номера

Facebook

Facebook

Судя по интернетам, за рубежом именно Facebook (на пару со Slack) является драйвером бот-революции. Тем не менее, для непрофессионального разработчика API показалось очень неочевидным.

Плюсы:

  • Распространенность клиента (хотя надо ставить именно Messenger)
  • Много туториалов и инструкций

Минусы:

  • Только webhooks, нет возможности подключиться через polling
  • Не все, на первый взгляд, очевидные возможности доступны сразу. Для некоторых нужно получить одобрение со стороны модераторов платформы.
  • Запутанная документация. Честно говоря, в свое время, так с ходу и не смог реализоватьдля Facebook что-либо работающее.
  • Все минусы самого Facebook: вопросы конфиденциальности, использование батареи приложением и т.д.

ВКонтакте

ВКонтакте

Отечественный аналог Facebook с историческим родством с Telegram.

Плюсы:

  • Есть polling, чуть более сложный, чем у Telegram, так как вместе с сообщениями выдается вся лента событий
  • API в целом кажется достаточно простым
  • Распространенность клиента

Минусы:

  • Для бота нужно создание сообщества и OAuth
  • Относительно небольшое количество туториалов
  • Тяжелое приложение

Viber

Viber

Честно говоря, давно удалил Viber с телефона из-за неудобного приложения и обилия спама.

Плюсы:

  • Простая авторизация без OAuth
  • Относительная распространенность клиента
  • Есть официальная библиотека для Python

Минусы:

  • Нет Polling
  • Качество клиента оставляет желать лучшего
  • Много спама на платформе

Discord

Discord

Discord совершил небольшую революцию в мире гейминга в области голосового общения. Успешно отъедает доли у традиционных игроков, быстро развивается и добавляет новый функционал.

Плюсы:

  • Есть polling
  • Достаточно простой API
  • Можно авторизовать приложение через логин/пароль вместо OAuth

Минусы:

  • Приложение не очень распространено вне геймерской среды
  • Веб-версия и нативное для Windows приложения довольно “тяжелые” (все прелести Electron)

Skype

Skype

Старичок рынка мессенджеров, сдает позиции в последнее время. История показывает, что, к сожалению, у Microsoft отсутствует целостное видение развития Skype.

Плюсы:

  • Распространенность приложения
  • Возможность обмена сообщениями со Skype for Business (бывший Lync)

Минусы:

  • Нет polling
  • Запутанная документация, наличие двух бот-платформ
  • Авторизация по OAuth
  • Мобильное приложение
  • Для некоторых функций нужно одобрение бота в каталог и т.д.
  • Риски платформы

Twitter

Twitter

В принципе, Direct Message в Twitter - это по сути тот же самый персональный чат.

Плюсы:

  • Есть polling
  • Достаточно простой API
  • Распространенность приложения

Минусы:

  • Получение ключей через OAuth
  • Rate limiting при использовании polling не позволяет сделать real-time диалог

Slack

Slack

Несколько лет назад Slack изменил ландшафт корпоративных мессенджеров. Очень популярен среди разработчиков.

Плюсы:

  • Есть polling (вроде бы)
  • Популярность среди разработчиков, можно ожидать большое количество библиотек и плагинов

Минусы:

  • Авторизация по OAuth
  • Не самая очевидная система workspaces
  • Возможные ограничения, связанные с платностью/бесплатностью аккаунта

IRC/XMPP

XMPP

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

Плюсы:

  • Старые проверенные и простые технологии
  • Возможность использовать разные клиенты

Минусы:

  • Нужно найти качественный мобильный клиент
  • Вероятно, будет проблема с push-ами
  • В случае с IRC нужно иметь сервер онлайн или пожертвовать приватностью

IFTTT

IFTTT

IFTTT - это облачный сервис для автоматизации. Среди прочего сервис предоставляет возможность настроить push-нотификации или уведомления через СМС.

Плюсы:

  • В некоторых случаях можно полностью избежать программирования
  • Простая настройка, ориентированная на обычных пользователей

Минусы:

  • Ограниченный набор подключаемых сервисов
  • Для всех автоматизаций необходимо настраивать отдельные пользовательские кейсы

Подводим итог

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

Мой топ наиболее подходящих платформ для собственных проектов:

  1. Twitter
  2. Discord
  3. WhatsApp

Есть, что дополнить? С чем-то не согласны? Добро пожаловать в комментарии.

comments powered by Disqus
blog@pyatakov.com