Основы работы с ботом в Telegram

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

При работе с Telegram учитывайте требования:

  1. Максимальная длина текстового сообщения 4096 символов, для сообщения с картинкой (1080*1080px) не более 1024 символов

  2. Требования к картинкам, фото. Telegram предпочитает квадратные картинки, оптимально 900х900 пикселей весом не более 5Мб

  3. Требования к файлам. Api Telegram требователен к загружаемым файлам:

    • Боты могут отправлять файлы до 2 Гб.

    • Для работы с ранее загруженными файлами можно использовать file_id. В этом случае к файлу применяются лимиты согласно документации Telegram.

    • Файлы могут быть отправлены с использованием url-адреса. В этом случае бот загружает файл и отправляет его. Лимиты: для фото 5Мб,остальные файлы 20Мб

    • Для постинга установлены иные лимиты: для фото - 10Мб, остальные файлы - 2 Гб.

Читайте первоисточник: https://core.telegram.org/bots/api#sending-files

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

Бот в Telegram создается при помощи другого бота под названием BotFather - данный Телеграм-канал поможет Вам без знаний программирования создать Бота.

Стоит отметить, что рядом с названием BotFather есть галочка (данный ориентир позволит Вам не наткнуться на иные мошеннические каналы).

Отправьте ему команду /newbot, указываем имя-логин нашего бота (должен обязательно заканчиваться на bot или _bot).

Если адрес не занят BotFather пришлет в ответ сообщение с токеном — «ключом» для доступа к созданному боту. Его нужно сохранить и никому не показывать:

После этого заходим в раздел "Каналы", выбираем Telegram и вводим в форму токен нашего бота:

Жмем кнопку готово. На этом подключение бота завершено.

Отправка файлов настоящее время работает только для gif -, pdf-и zip-файлов

Видео-инструкции

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

Подключение Чат-бота:

Работа с группами/каналами в Telegram

Группа в Telegram — это не что иное как чат между несколькими пользователями

Telegram-канал — это что-то вроде чата с односторонней связью. Оставлять сообщения в нём может только владелец или администраторы, остальные пользователи их могут только просматривать, оставлять комментарии.

Как добавить бота в группу/канал Telegram

Эта возможность для бота включается в BotFather: Bot Settings -> Allow Groups? должен быть статус enabled

Видео-инструкция добавления бота в канал

Как включить возможность добавлять бота в группы и каналы

Основы по работе с чатами групп и каналами в Telegram

Для того, чтобы автоматизировать работу в чатах и каналах необходимо добавить своего бота Администратором. Как это сделать?

Шаг 1. Перейдите в Управление группой/каналом

Шаг 2. Выберите Администраторы

Шаг 3. Нажмите кнопку 'добавить Администратора' и в поисковой строке введите логин Вашего бота. Для успешной работы бота дайте права на работу/удаление сообщений

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

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

message_from - идентификатор автора сообщения message_from_name - имя автора сообщения message_from_username - ник автора сообщения в Телеграм

Переменные с информацией о пересылаемом сообщении

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 - номер пользователя

Callback`и Telegram

Какие колбеки (Callback) есть в Telegram

client_unsubscribed - клиент отписался, заблокировал бот client_returned - клиент разблокировал бота

Какие колбеки (Callback) есть в Telegram-каналах

new_chat_member - добавлен новый пользователь left_chat_member - пользователь покинул канал kicked_chat_member - пользователь удален администратором chat_join_request - получена заявка на добавление в канал edited_channel_post - пост на канале был отредактирован (edited_channel_post + дата и время редактирования)

При получении любого из вышеназванных колбеков обновляются значения переменных: chat_member_name - имя пользователя chat_member_username - ник пользователя chat_member_id - номер пользователя

bot_added_to_group - в чат добавлен бот (неважно какой, отреагирует на любого, даже если подключенный бот сам был добавлен в группу); bot_left_group - аналогичный коллбек - удаление бота из канала;

new_like - поставил лайк на пост like_deleted - удалил лайк с поста

число в коллбеке (new_like; like_deleted) - это id сообщения на которое поставили или с которого убрали реакцию

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

В Телеграм-каналах коллбеки на реакции не отображаются!

Коллбеки на реакции приходят только в группах.

Если один человек поставил несколько лайков, а потом удалил 1 из них, то не отображается, какой именно лайк был удален.

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

reaction_on_message_id - содержит id сообщения на которое была реакция

reaction_from - id от кого была реакция

message_from_username - юзернейм от кого была реакция (если есть)

reaction_from_name - имя от кого была реакция

Также если в Telegram отвечают на сообщение, то переменная reply_text в карточке будет содержать полный текст сообщения, на которое ответили.

Если человек цитировал, то также будет переменная tg_quote, содержащая цитату.

Коллбеки с Boost

  1. chat_boost_from user #{id_user} - подарили буст чату (или каналу):

При получении данного коллбека генерируются переменные:

  1. remove_boost_from user #{id_user} - забрали буст у чата (или канала):

При получении данного коллбека генерируются переменные:

Как автоматизировать удаление системных уведомлений в группах

Для автоматического удаления всех системных сообщений достаточно присвоить любое значение переменной del_tg_system_messages (переменная может быть как константой проекта, так и переменной сделки) и дать боту разрешение на удаление сообщений.

Использовать переменную del_tg_system_messages возможно только в группах. В каналах присвоение какого-либо значения данной переменной не приведет ни к какому результату.

Удаляются следующие виды системных уведомлений: - Изменено название группы - Изменена фотография группы - Удалена фотография группы - Закреплено сообщение - Пользователь вступил в группу - Пользователь вышел из группы

Если вы хотите удалять лишь избранные типы системных уведомлений, то вместо переменной del_tg_system_messages создайте переменную del_tg_chosen_messages и поместите в нее массив с типами уведомлений, которые нужно удалить, через запятую.

Обращаем внимание! Данные переменные сработают только для групп в Телеграме, а в каналах - нет.

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

  • 'new_chat_member' – пользователь вступил в группу,

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

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

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

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

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

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

Важно! Удаление системных уведомлений не затронет колбэки. Удалено будет только системное уведомление из диалога в Telegram

Получать колбэк (callback) о новом посте в канале

В настройках проекта добавьте переменную callback_on_channel_post со значением 1.

ВАЖНО! В Телеграм-каналах после введенных изменений по умолчанию уведомления о новых постах приходить не будут.

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

Форум в Telegram. Работа с темами

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

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

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

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

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

Функции API для работы в чатах и каналах Telegram

Доступные функции API для работы в чатах и каналах можно найти в этой статье:

Статья "Как работать с чатами/каналами Telegram"

Проверка подписки

Last updated