Основы работы с ботом в Telegram
В этой статье расскажем про подключение бота Telegram, а также про основы работы с каналами/группами.
При работе с Telegram учитывайте требования:
Максимальная длина текстового сообщения 4096 символов, для сообщения с картинкой (1080*1080px) не более 1024 символов
Требования к картинкам, фото. Telegram предпочитает квадратные картинки, оптимально 900х900 пикселей весом не более 5Мб
Требования к файлам. 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
chat_boost_from user #{id_user} - подарили буст чату (или каналу):
При получении данного коллбека генерируются переменные:
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 для работы в чатах и каналах можно найти в этой статье:
Проверка подписки
Last updated