Как создать бота для Telegram

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

circle-exclamation

Требования и ограничения Telegram

Создание бота Telegram

Бот Telegram создаётся через BotFather, официальную систему управления ботами Telegram. Этот проверенный инструмент (обозначается синей галочкой) позволяет создать бота без каких-либо знаний программирования и защищает вас от мошеннических подражателей.

Шаги создания:

  1. Начните чат на BotFatherarrow-up-right.

  2. Отправьте команду: /newbot

  3. Выберите имя для вашего бота (это отображаемое имя для пользователей).

  4. Выберите имя пользователя для вашего бота. Оно должно заканчиваться на 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. Для полной функциональности убедитесь, что у бота есть права на чтение и удаление сообщений.

Переменные для работы в чатах

circle-exclamation
  • Переменные с информацией об авторе сообщения

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 сообщения, на которое был поставлен ответ или с которого был снят лайк.

circle-exclamation

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

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 и поместите в неё массив с типами уведомлений для удаления, разделёнными запятыми.

circle-exclamation

Варианты системных уведомлений:

  • 'new_chat_member' — пользователь присоединился к группе,

  • 'left_chat_member' — пользователь покинул группу,

  • 'pinned_message' — сообщение закреплено,

  • 'delete_chat_photo' — фотография группы удалена,

  • 'new_chat_photo' — фотография группы была изменена,

  • 'new_chat_title' — название группы было изменено

Например, вам нужно удалить все виды системных сообщений, кроме присоединения к группе; тогда нужно добавить все виды колбэков в переменную проекта (константу), кроме "new_chat_member".

circle-info

Обратите внимание!

Удаление системных уведомлений не повлияет на колбэки. Будет удалено только системное сообщение из диалога Telegram.

Форум в Telegram

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

Основная цель форума — структурировать общение внутри большого сообщества.

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

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

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

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

Как настроить связку Telegram-клиент с сайтом?

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

Последнее обновление