Skip to content

Разработка Телеграм-бота для групп

Бота можно добавить в группу; самостоятельно боты вступать в группы не могут. Разработчик может запретить добавление бота в группы в настройках в BotFather.

В публичную группу — группу с юзернеймом — ботов могут добавлять только админы. Боту можно дать права администратора в группе, чтобы он мог выполнять действия админов: например, удалять пользователей.

В одной группе может быть до 20 ботов.

Пример бота для подсветки синтаксиса, работающего в группах

Privacy mode — видимость сообщений

Обычно бот должен реагировать только на команды. Телеграм не уведомляет бота об остальных сообщениях, и это гарантирует приватность переписки для участников чата.

Тем не менее некоторым ботам необходимо видеть другие сообщения в группе: например, если это чатбот или антиспам-бот. Разработчики таких ботов могут отключить privacy mode.

Privacy mode — настройка в BotFather, которая по умолчанию включена. В этом режиме бот в группах видит только те сообщения, которые могут быть обращены к нему:

Если бот — админ в группе, то он видит все сообщения, даже если privacy mode включён.

Боты с отключённым privacy mode могут видеть все сообщения в группе, кроме сообщений от других ботов.

Пример бота, который видит не все сообщения

Не получается отключить privacy mode?

Если вы отключили privacy mode, бота нужно удалить из группы и добавить обратно, чтобы изменения вступили в силу.

В мобильных и десктопном приложениях Телеграма в списке участников группы видно, включён ли privacy mode:

Пример бота

Force reply

Если бот с privacy mode спросил что-либо у участника группы, то сообщение участника должно быть ответом на сообщение бота, чтобы бот его увидел.

Для того чтобы не заставлять пользователя нажимать «Ответить», бот может отправить сообщение с force reply. В этом случае у пользователя автоматически начнётся ответ, как если бы он нажал «Ответить».

Но я не рекомендую использовать force reply, потому что автоматический ответ на сообщения сбивает пользователей с толку.

Права администратора

Когда пользователь назначает бота админом чата, он может выбрать, какие права админа ему дать. В настройках BotFather можно выбрать, какие права в таком случае предлагать включать по умолчанию.

Право админа на анонимность — способность отправлять сообщения от лица группы — не действует на ботов.

Выбор прав

Отправка сообщений участникам

Сообщения в группе видны всем. Бот не может показать сообщение только одному пользователю, в том числе поприветствовать нового участника.

Чтобы не засорять чат, ваш бот может удалять временные сообщения спустя время. Если же бот должен писать в личку вступающим в группу участникам, для этого могут пригодиться заявки на вступление.

Сообщения от лица групп и каналов

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

  • из привязанного к группе канала (с точки зрения API это пересланные сообщения);
  • от лица группы от анонимных администраторов той же группы;
  • от лица публичных каналов от премиум-пользователей.

Корректно обрабатывайте такие случаи.

Ссылки по теме