Как создать бота для Telegram
В этой статье рассказывается, как подключить вашего Telegram-бота, и даются основы работы с каналами и группами.
Требования и ограничения Telegram
1. Ограничения на сообщение
Сообщение только с текстом: Максимум 4 096 символов.
Сообщение с изображением: Максимум 1 024 символа (для изображения 1080×1080 px).
2. Требования к изображениям
Формат: Предпочтительны квадратные изображения.
Оптимальный размер: 900×900 пикселей, максимум 5 МБ.
3. Требования к файлам
API Telegram имеет особые требования к загружаемым файлам:
Боты могут отправлять файлы размером до 2 ГБ.
Вы можете использовать file_id для работы с ранее загруженными файлами. В этом случае ограничения на файлы соответствуют документации Telegram.
Файлы можно отправлять с помощью URL (бот скачивает и отправляет его):
Фотографии: ≤ 5 МБ
Другие файлы: ≤ 20 МБ
Для публикации действуют другие ограничения:
Фотографии: 10 МБ
Другие файлы: 2 ГБ
Создание бота Telegram
Бот Telegram создаётся через BotFather, официальную систему управления ботами Telegram. Этот проверенный инструмент (обозначается синей галочкой) позволяет создать бота без каких-либо знаний программирования и защищает вас от мошеннических подражателей.
Шаги создания:
Начните чат на BotFather.
Отправьте команду:
/newbotВыберите имя для вашего бота (это отображаемое имя для пользователей).
Выберите имя пользователя для вашего бота. Оно должно заканчиваться на
botили_bot(например,my_test_bot).
Если имя пользователя доступно, BotFather отправит вам подтверждающее сообщение, содержащее «token»— уникальный ключ для доступа к API.
Важно: Этот токен — пароль для вашего бота. Храните его в надёжном месте и никогда не передавайте его никому.

Перейдите в Мессенджеры выберите Telegram, и вставьте токен вашего бота в предоставленное поле.

Нажмите кнопку Готово кнопку, чтобы завершить настройку бота и активировать подключение к вашему проекту.
Работа с группами/каналами Telegram
Полезная информация
Группа Telegram — это канал общения между участниками: все участники могут писать в неё.
Канал Telegram — это одностороннее средство коммуникации. Только владелец или администраторы могут отправлять сообщения, а остальные участники могут только просматривать их и оставлять комментарии.
Как добавить бота в группу/канал Telegram
Эта функция для бота включается в BotFather:
Шаг 1. Перейдите в настройки бота:

Шаг 2. Нажмите на «Allow Groups?»

Шаг 3. Должен быть включён статус.

Добавление бота в качестве администратора в группу/канал
Чтобы автоматизировать работу в чатах и каналах, нужно добавить своего бота в качестве администратора.
Как это сделать?
Шаг 1. Перейдите в управление группой/каналом и выберите Администраторы вкладку

Шаг 2. Нажмите «Add Admin» .

Шаг 3. Введите имя пользователя вашего бота в поле поиска.

Шаг 4. Для полной функциональности убедитесь, что у бота есть права на чтение и удаление сообщений.

Переменные для работы в чатах
Обратите внимание!
Сохранение переменных в групповых чатах для событий, таких как вход в чат, выход из чата, новая реакция и т. д., недоступно.
Переменные будут доступны только внутри блока, который сработал. Вы можете выводить эти переменные в блоке для отслеживания работы.
Это НИКАК не повлияет на работу чат-ботов, будет невозможно отследить, кто вошёл/вышел, в разделе клиентов.
Переменные с информацией об авторе сообщения
message_from — ID автора сообщения
message_from_name — имя автора сообщения
message_from_username — никнейм автора сообщения в Telegram

Переменные с информацией о пересланном сообщении
reply_message_id — номер пересылаемого сообщения
reply_from — кто является автором пересланного сообщения
reply_from_name — имя человека, чьё сообщение пересылается
reply_from_username — никнейм человека, чьё сообщение пересылается
reply_from_chat_id — номер диалога, из которого было переслано сообщение
Добавление и удаление из группы
В этом случае срабатывают колбэки new_chat_member и left_chat_member (переменные не сохраняются в карточке клиента):
chat_member_name — имя пользователя
chat_member_username — никнейм пользователя
chat_member_id — номер пользователя
Колбэки в Telegram
client_unsubscribed — клиент отписался, заблокировал бота
client_returned — клиент снял блокировку с бота

Колбэки в группах/каналах
new_chat_member — добавлен новый пользователь
left_chat_member — пользователь покинул канал
kicked_chat_member — пользователь был удалён администратором
chat_join_request — получен запрос на добавление в канал
edited_channel_post — пост в канале был отредактирован (edited_channel_post + дата и время редактирования)



Колбэки отображаются в Клиенты разделе
bot_added_to_group — бот был добавлен в чат (неважно, в какой именно, он будет отвечать любому, даже если подключённый бот был добавлен в саму группу);
bot_left_group — аналогичный колбэк возникает при удалении бота из канала;
new_like — поставил лайк посту
like_deleted — удалил лайк с поста


Номер в колбэке (new_like; like_deleted) — это ID сообщения, на которое был поставлен ответ или с которого был снят лайк.
Обратите внимание!
Колбэки на реакции не отображаются в каналах Telegram! Колбэки на реакции приходят только в группах.
Если один человек поставил несколько лайков, а затем удалил 1 из них, не показывается, какой именно был удалён.
Когда в группах появляются колбэки с реакциями, в блоке доступны переменные:
reaction_on_message_id — содержит ID сообщения, на которое была реакция
reaction_from — id того, от кого была реакция
message_from_username — username того, от кого была реакция (если есть)
reaction_from_name — имя того, от кого была реакция
Также, если Telegram отвечает на сообщение, переменная reply_text в карточке будет содержать полный текст сообщения, на которое ответили.

Если сообщение было отправлено как ответ (с цитированием предыдущего сообщения), система также сгенерирует tg_quote переменную, которая содержит цитируемый текст.


Колбэки с бустом
chat_boost from user #{id_user} — дал буст чату (или каналу):

Когда срабатывает этот колбэк, генерируются переменные:

remove_boost_from user #{id_user} — буст был снят с чата (или канала):

Когда срабатывает этот колбэк,, генерируются переменные:

chat_boost from giveaway — выдан при розыгрыше звёзд в канале
remove_chat_boost from giveaway — период буста для розыгрыша звёзд в канале завершён
Как автоматизировать удаление системных уведомлений в группах
Чтобы автоматически удалять все системные сообщения, достаточно присвоить любое значение переменной del_tg_system_messages (переменная может быть как константой проекта, так и переменной транзакции) и дать боту разрешение на удаление сообщений.
Переменная del_tg_system_messages может использоваться только в группах. В каналах присвоение любого значения этой переменной не приведёт ни к какому результату.


Права администратора в настройках группы Telegram
Удаляются следующие типы системных уведомлений:
- Изменено название группы
- Изменена фотография группы
- Фотография группы удалена
- Сообщение закреплено
- Пользователь присоединился к группе
- Пользователь покинул группу
Если вы хотите удалять только выбранные типы системных уведомлений, тогда вместо переменной del_tg_system_messages создайте переменную del_tg_chosen_messages и поместите в неё массив с типами уведомлений для удаления, разделёнными запятыми.
Обратите внимание!
Эти переменные будут работать только для групп Telegram, но не для каналов.
Варианты системных уведомлений:
'new_chat_member' — пользователь присоединился к группе,
'left_chat_member' — пользователь покинул группу,
'pinned_message' — сообщение закреплено,
'delete_chat_photo' — фотография группы удалена,
'new_chat_photo' — фотография группы была изменена,
'new_chat_title' — название группы было изменено
Например, вам нужно удалить все виды системных сообщений, кроме присоединения к группе; тогда нужно добавить все виды колбэков в переменную проекта (константу), кроме "new_chat_member".

Обратите внимание!
Удаление системных уведомлений не повлияет на колбэки. Будет удалено только системное сообщение из диалога Telegram.
Форум в Telegram
Форум — это группа, в которой можно создавать отдельные темы для обсуждения. В форуме можно использовать стандартные функции: прикреплять медиафайлы, проводить опросы и настраивать уведомления. Также можно закреплять сообщения и добавлять отдельных ботов в каждый чат.

Основная цель форума — структурировать общение внутри большого сообщества.
В стандартном групповом чате с большим количеством участников отслеживать разговоры и находить нужные сообщения становится сложно. Форумы решают эту проблему, организуя обсуждения в отдельные тематические ветки. Это автоматически сегментирует сообщество по темам и интересам, делая общение более сфокусированным и удобным для управления.
Создавать тему может только владелец группы, если в группе более 100 участников. Если группа связана с каналом, то создать тему не получится. Темы включаются в настройках группы:

Будучи администратором, вы можете создать тему в настройках форумной группы:

После подключения тем, аватар изменится с круглого на квадратный, что позволит отличить форум от других чатов Telegram:

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