Как редактировать сообщение в телеграм боте
Хочешь зарабатывать больше? Пройди курс Комплексный интернет-маркетинг от команды tripmydream и освой профессию за 3 месяца!
Есть 4 основных способа форматирования текста в Telegram, с помощью: встроенной панели форматирования, горячих клавиш, спецсимволов и сторонних сервисов. Увы, все они работают по разному на разных видах девайсов и операционных систем, или точнее в каком-то из случаев они работать не будут.
Далее в статье мы рассмотрим все варианты и даже н екоторые лайфхаки, которые доступны с помощью форматирования.
Встроенная панель форматирования текста Telegram
Самый быстрый и удобный способ для форматирования текста в Телеграм — это использовать встроенную панель форматирования. Эта панель отличается на разных типах девайсов и операционных системах не только внешним видом, но и функционалом. Не работает в Telegram Web.
На персональном компьютере
- выделите нужный текст,
- нажмите правой кнопкой мышки / тачпада,
- в открывшемся меню выберите пункт:
«Форматирование» для Windows,
«Преобразование» для macOS. - примените нужный стиль форматирования.
В приложении Telegram для iPhone and iPad
- выделите нужный текст,
- в открывшемся меню нажмите на стрелку в право «▶» ,
- выберите пункт «BIU»,
- примените нужный стиль форматирования,
всего доступно 6 опций, для пролистывания нажимайте стрелки «▶» «◀».
В приложении Telegram для Android
Работает так же как и в iOS, но интерфейс выглядит по другому.
Для форматирования текста в Telegramна мобильных телефонах с операционной системой Android:
На Android есть дополнительный пункт стиля «Обычный», которым можно обнулить форматирование.
Горячие клавиши Telegram Desktop для ПК на Windows и macOS
Большая часть представленных в интернете горячих клавиш для macOS оказалась не рабочей или работает на разных MacBook по разному, так что оставляем то, что работает. Как только узнаем больше, дополним статью :)
Форматирование текста в Telegram
Управление чатами
Управление приложением
Спецсимволы Telegram
Еще один запасной способ для продвинутых пользователей – использование спецсимволов. Его супер возможность – работает в web-версии Telegram, недостаток – не работает на Андроид.
- **Жирный текст** – две звездочки с обеих сторон текста.
- __Текст курсивом__ – два нижних подчеркивания.
- ```Моноширинный текст``` – с обоих концов ставятся по три знака апострофа.
Другие сервисы
Так же форматировать текст в Телеграм можно с помощью ботов, отдельных сервисов и сайтов, планировщиков постов. В статье мы перечислим самые очевидные.
Команда @bold
Например, самый базовый универсальный бот, который даже не требует особых махинаций.
- В поле ввода текста в Telegram напишите комбинацию «@bold»,
- нажмите пробел,
- введите нужный текст,
- нажмите клавишу «Enter»,
- в появившемся контекстном меню выберите один из трех вариантов написания.
Небольшой сайт с небольшим функционалом, но все же есть пару фишек недоступных обычными способами. Тут можно зачеркнуть, подчеркнуть и, что самое главное, перевернуть и отзеркалить текст, или даже перевести в азбуку Морзе.
Там много интересных фишек для разных сервисов, но в данном случае нас интересует функционал по зачеркиванию текста. Тут 6 видов форматирования для зачеркивания и подчеркивания текста, которые могут пригодиться в оформлении.
Плюсы и минусы такие же как у предыдущего сайта: мало функционала в одном месте и оформляет текст целиком.
Лайфхак: моноширинный текст в Telegram
У моноширинного текста есть одна приятная особенность. На мобильных телефонах и ПК с macOS, если пользователь нажмет на такой текст, то он автоматически скопируется в буфер обмена. На устройствах с macOS и Windows такой текст еще и выделен цветом.
Для любого бизнеса важно установить канал общения с клиентами. Но сделать это не так просто. Психология людей такова, что они не хотят захламлять память своего смартфона новым фирменным приложением из того места, которое они посетили. Совсем другое дело — чат-бот. Ненавязчивый и дружелюбный. А кроме того — со всеми необходимыми фишками: рекламными акциями, скидками и быстрым заказом. И уведомления в одном единственном удобном мессенджере. Почему бы его не реализовать в своем бизнесе? Тем более, что это не так сложно, как вы думаете.
Сегодня мы поговорим о ботах и их API ( telegram api ) на базе популярного мессенджера Telegram.
Содержание
Telegram Bot API и Telegram API
Все началось с того, что Николай Дуров совместно с командой программистов создал криптографический протокол. Его движок задействовал комбинацию симметричного шифрования AES , протокол Диффи-Хеллмана для обмена ключами шифрования между клиентами и ряд хеш-функций. На основе этого протокола был построен MTProto — механизм, позволяющий пользователям сегодня использовать Telegram-мессенджеры.
На данный момент есть два основных инструмента API, с помощью которых можно задействовать сервисы Telegram — Telegram Bot API и Telegram API . Первый служит для разработки чат-ботов, второй позволяет делать полностью кастомные Telegram-клиенты. Разработчикам также доступна открытая библиотека TDLib (Telegram Database Library), с помощью которой можно создавать свою версию мессенджера с уникальными опциями (как например, Telegram X, построенный именно на TDLib). Telegram Bot API является надстройкой над Telegram API , поэтому пользоваться Bot API можно без знаний о механизме используемого протокола MTProto .
Принцип работы любого бота заключается в том, что он перманентно направляет запросы на сервер и регулярно получает обновления. Получать их можно двумя способами. Во-первых, можно использовать вебхуки, когда сервер делает обратный вызов на указанный URL. А во-вторых, можно просто « забрасывать » запросами Telegram, получая постоянные ответы.
BotFather: быстрый Start
Чтобы приступить к созданию собственного бота, необходимо получить токен для авторизации и подключения через API. Делается это при помощи служебного бота. Введите в поиске Telegram его имя — BotFather. Далее следует выбрать команду /newbot и дать имя боту.
Затем BotFather спросит вас имя, которое обязательно должно заканчиваться на bot , например, shop_serge_bot . Далее для бота будет сгенерирован уникальный токен, который будет выглядеть примерно так — 2093336709:AAGiH64Ec1R8r222sM9IywvlIGFkb7wFqyo .
Всего можно генерировать не более 20 ботов на одного пользователя. Управление ботами также происходит через меню команд служебного бота BotFather. Например, если вам потребуется настроить какой-то из ваших ботов, вы должны перейти по командам / mybots и затем нажать на кнопку Edit Bot . Здесь вы сможете настроить имя — Edit Name и указать описание — Edit Description .
В меню настроек BotSettings включается режим встроенных запросов (по умолчанию эта опция отключена). Когда встроенные запросы активированы, пользователи могут вызвать вашего бота, просто введя имя пользователя в поле для ввода текста в любом чате, группе или канале.
Если Telegram использовать в коммерческих целях, чат-бот можно вооружить средствами для приема платежей. Стоит обратить внимание, что сам Telegram не занимается проведением транзакций, он лишь дает возможность подключить услуги длинного списка провайдеров.
В их числе такие платежные системы, как Stripe, YooMoney, Сбербанк, PayMaster, PSB, Tranzzo, Payme, CLICK, LiqPay, Portmone, Paymega, ECOMMPAY и др. Разумеется, чтобы использовать эти платежные системы, нужно быть юридическим лицом.
aiogram — асинхронная библиотека
pip install -U aiogram.
Создаем эхо-бот
Создаем конфигурационный файл config.py и указываем в нем значение, сгенерированное ботом BotFather. Приступаем к написанию кода самого чат-бота.
Для начала импортируем конфигурацию и систему логирования. Затем подключаем все необходимые модули из aiogram . Указываем уровень логирования, а затем инициализируем бота, создав две переменные — Bot и Dispatcher .
Как уже говорилось ранее, обработка событий в Telegram может происходить двумя способами — long polling , когда мы со своей стороны постоянно запрашиваем сервер, а второй вариант — более мощное и быстрое решение вебхук . Реализация long polling на Linux имеет большой минус — бот часто зависает и его приходится постоянно перезапускать.
Если вы делаете бота, который работает с деньгами или какой-то конфиденциальной информацией, то параметр skip_updates лучше устанавливать в значение Falsе — тогда обработчик не будет пропускать старые события и будет обрабатывать их в любом случае. Если этого не делать, существует вероятность, что какая-нибудь важная транзакция может потеряться и возникнет потенциальная угроза безопасности (или коллизия).
Оформление: кнопки и текст
Например, URL button — простая кнопка со ссылкой на какой-то веб-ресурс. Вариант кнопки Callback запрашивает обновление. Она может применяться, скажем, для уведомлений или предупреждений (с окном notification или окном alert ). Кнопка для перехода в режим инлайн может открывать меню для выбора чата.
Другой тип кнопок — клавиатурный. Он дают возможность использовать подсказки бота. Например, они могут содержать наиболее частые запросы, ожидаемые от пользователя ( « как к вам проехать » , « время работы » и т.д.)
Один из примеров такой клавиатуры — бот в кафе для дистанционного принятия заказов:
Инструмент для оформления текста выбирается аргументом функции parse_mode .
Используя модуль markdown из aiogram.utils по ходу текста можно менять форматирование. Тип форматирования определяется функцией с дописанной к ней букве h , которая означает поддержку HTML.
Учим бот-модерации
Даем возможность бана в группе
Помимо основного кода нам понадобится сделать файл filters.py , который поместим рядом с главным файлом нашего бота:
В коде бота мы его импортируем:
Также необходимо в конфигурационном файле config.py указать id чата ( GROUP_ID ).
Все пользователи Telegram имеют свой id . Он постоянный, и поэтому по нему можно идентифицировать чаты. Если вдруг вы не знаете id , вы можете воспользоваться ботом @username_to_id_bot , который покажет это значение.
В токене бота первая часть — это его id . Например, токен 110301514:AмHdqTcvCG1vGWDxfyeDfSAs0K5PALDsaw принадлежит боту с id 110301514 . В Bot API перед id супергрупп и каналов добавляется -100 (например, id 1322414430 превращается в -1001322414430 ).
Заключение
Более сложные боты обладают искусственным интеллектом и умеют использовать нейронные сети. Возможности таких чат-ботов ограничены только вашей фантазией, но об этом — в следующий раз. А пока посмотрите дополнительное видео по технике создания ботов на JavaScript для Telegram API :
Highload нужны авторы технических текстов. Вы наш человек, если разбираетесь в разработке, знаете языки программирования и умеете просто писать о сложном!
Откликнуться на вакансию можно здесь .
Известно, что в мессенджере Телеграм каждый пользователь может создавать канал с любой тематикой. Телеграм изначально имеет определенный набор опций, внедренный специально для администрирования каналов. Но иногда для ведения канала этого набора недостаточно и администраторы каналов вынуждены пользоваться дополнительными инструментами. Одним из таких инструментов является Controllerbot. И сегодня мы подробно о нем расскажем.
Что такое Controllerbot
Controllerbot — бот-помощник для администрирования каналов в Телеграм. С его помощью можно красиво оформить текст в постах, добавлять в них inline-кнопки и реакции. Также с его помощью можно управлять несколькими каналами одновременно, создавать отложенные посты и смотреть статистику каналов. Ниже мы приведем подробную инструкцию по работе с ботом.
Как подключить бота
Итак, прежде чем использовать Controllerbot вам понадобится создать своего бота. Сам процесс создания собственного бота несложный и не затратный по времени. Для этого нужно сделать следующие действия:
- Зайдите в бот @BotFather, нажмите кнопку "Запустить" и отправьте команду /newbot.
- Придумайте имя для бота и отправьте его боту.
- Эти же шаги сделайте и для создания юзернейма бота.
- Далее скопируйте токен бота. Данный токен вам понадобится для подключения к ControllerBot, а также для добавления созданного бота в администраторы канала.
- Введите в строку поиска @ControllerBot или перейдите по ссылке. Запустите его.
- Отправьте команду /addchannel. Затем введите скопированный токен и отправьте его боту
- Далее войдите в настройки вашего канала и добавьте созданного бота в администраторы.
- Предоставьте ему нужные разрешения и подтвердите.
Готово. Новый бот создан и добавлен в администраторы вашего канала. Далее нужно подключить канал к ControllerBot.
Как подключить канал к ControllerBot
Чтобы подключить канал к ControllerBot, нужно сделать несколько шагов:
- Затем укажите город, в котором вы находитесь. Controllerbot настроит таймзону. Данная опция важна для публикации отложенных постов, о которых мы написали чуть ниже.
Готово. Ваш канал подключен к ControllerBot.
Публикация постов через Controllerbot
Далее рассмотрим подробную инструкцию о публикации постов через ControllerBot и их оформление.
Выбрав канал, вы перенесетесь в бот, который вы ранее добавляли в администраторы канала
В нашем примере это Мамкин Помощник.
Теперь бот готов к оформлению поста.
Markdown или HTML
При оформлении поста бот сразу же предложит форматирование текста в режиме HTML или в режиме MarkDown. Если вы нажмете кнопку "Форматирование: Markdown", то посты надо будет оформлять с помощью языка разметки Markdown. Это означает, что нужно будет использовать специальные символы.
Если выберете "Форматирование: HTML", то посты придется оформлять с помощью языка разметки HTML, то есть использовать html-теги.
После отправки команды /markdown, ControllerBot выдаст справку о том, как форматировать текст с помощью Markdown.
После отправки команды /HTML, бот выдаст справку про то, как форматировать текст с помощью HTML.
Чуть ниже рассмотрим более подробно, как форматировать текст с помощью этих режимов.
Как форматировать текст
Итак, если вы выбрали режим HTML, то форматировать текст нужно с помощью следующих html-тегов:
жирный текст — <b>пухлый</b>
курсивный текст — <i>падающий</i>
код в виде строки — <code>язык программирования</code>
код в виде блока — <pre>удобно
Оформляете текст таким образом и отправляете боту. На выходе должно получиться так:
При выборе режима Markdown текст нужно форматировать с помощью следующих спецсимволов:
жирный текст — **жирный**
курсивный текст — __курсив__
код в виде строки — `язык программирования`
код в виде блока — ```удобно
После отправки текста ControllerBot, получится такой результат:
Вызов команды /settings для смены режимов форматирования текстаКак сделать гиперссылку
Для создания гиперссылки в ControllerBot также можно использовать Markdown и HTML. В Markdown нужно название ссылки указать в квадратных скобках, а саму ссылку — в круглых:
В HTML ссылку нужно оформить с помощью тегов:
Также ссылку можно создать с помощью встроенных функций Телеграм.Правой кнопкой мыши кликните на поле ввода, в появившемся контекстном меню выберите опцию "Форматирование", а затем "Добавить ссылку".
Далее введите название ссылки и URL.
URL-кнопки
С помощью ControllerBot к постам можно прикреплять ссылки в виде URL-кнопок. Оформить URL-кнопку можно следующим образом:
ControllerBot выдаст инструкцию о том, как оформить URL-кнопки.
Есть два варианта оформления.
Первый вариант — установить URL-кнопки в вертикальном расположении, то есть одна URL-кнопка будет занимать один горизонтальный ряд, а следующая URL-кнопка будет расположена ниже.
Реакции
Еще одна классная фишка, которую предоставляет ControlletBot, это возможность прикрепить к посту реакции в виде смайликов. Данная фишка является аналогом лайков в соцсетях.
Бот по умолчанию предложит добавить реакции со смайликами "Палец вверх" и "Палец вниз". Но вы можете выбрать смайлики на свое усмотрение, а также добавить к ним текст. Делается это так: выбираете смайлик, пишите рядом с ним текст, ставите разделитель (слэш), далее выбираете второй смайлик, вводите текст и опять вставляете разделитель. Например, смайлик №1 "текст" / смайлик №2 "текст".
Ввод смайликов и текста для добавления реакций к постуОтправьте выбранные смайлики и набранный текст в ControllerBot.
Готово. Теперь на ваш пост подписчики могут реагировать.
Если вы желаете пользоваться одними и теми же реакциями ко всем будущим постам, то вы можете установить реакции по умолчанию в настройках Controllerbot.
Затем выберите нужные смайлики и отправьте их ControllerBot.
После этого все посты будут публиковаться с установленными реакциями по умолчанию.
Фото и видео
ControllerBot также дает возможность прикрепить изображение или видеофайл к посту. Для этого нужно воспользоваться опцией "Прикрепить медиафайл", которая появится сразу после отправки нового поста боту.
Готово. Теперь к вашему посту прикреплен медиафайл.
Публикация поста
После оформления пост готов к публикации. Для публикации поста нужно следовать следующему алгоритму:
Готово. Ваш пост опубликован.
Отложенный постинг
Одной из полезных функций ControllerBot является опция отложенного постинга.
Установка таймера для отложенной публикации
Если вы создали пост и хотите его опубликовать в определенное время, вам нужно воспользоваться данной опцией. Для этого нужно совершить следующие действия:
- Отправьте в ControllerBot созданный пост, после чего нажмите кнопку "Далее"
- Выберите время и дату для публикации поста. Вы можете воспользоваться предложенными вариантами ControllerBot, а можете самостоятельно задать время и дату. Для этого вам нужно ввести дату и время через пробел "14 00 04 12", где первые два числа будут означать часы и минуты, а последние два числа — день и месяц.
- Отправив боту данные числа, вы получите уведомление, что отложенный пост был создан и будет опубликован 4 декабря в 13:45.
Установка таймера для удаления публикации
Если вы у себя на канале публикуете рекламные посты, то вам будет полезна функция отложенного удаления поста. Это означает, что опубликованный рекламный пост удалится в заданное время. Сделать это можно сразу же после отправки поста в ControllerBot.
- Затем нажмите кнопку "Задать таймер для удаления".
- Далее выберите количество часов, через которое удалится пост. Вы можете выбрать из предложенных вариантов или самостоятельно ввести нужно количество часов.
Готово. Таймер установлен и пост удалится через заданное вами количество времени.
Уведомление бота о том, что таймер самоуничтожения установленКак редактировать опубликованные посты
Если возникла надобность отредактировать опубликованный пост, то для этого нужно сделать следующее:
- Зайдите в бот, подключенный к вашему каналу (в нашем примере — это бот Мамин Помощник) и введите команду /start. Затем нажмите кнопку "Редактировать".
- Отправьте исправленный текст боту и нажмите кнопку "Сохранить изменения".
- Готово. Теперь вы можете посмотреть отредактированный пост, нажав кнопку "Посмотреть изменения"
Управление отложенными постами
Чтобы отредактировать отложенные посты через ControllerBot, нужно следовать почти такому же алгоритму, который мы описали выше.
- Зайдите в бот, подключенный к каналу, отправьте ему команду /start и нажмите кнопку "Отложенные"
- Выберите канал, в котором нужно отредактировать отложенный пост.
- Выберите отложенный пост, который вы хотите изменить.
- В предложенном меню вы можете изменить время публикации поста или удалить его.
Статистика
ControllerBot предоставляет администраторам канала еще одну полезную функцию — Статистика. С помощью данной функции вы можете отследить график роста подписчиков на вашем канале. А также получить отчет с данными по приросту подписчиков за определенный период (неделя или месяц).
- Чтобы посмотреть статистику канала войдите в бот, подключенный к каналу и отправьте ему команду /start.
- В меню выберите канал, по которому нужно посмотреть статистику.
- Затем выберите период времени (неделя или месяц) за который вы хотите посмотреть статистику.
- Готово. Бот выдаст вам инфографику о приросте подписчиков по дням за выбранный период.
Другие функции
Рассмотрим дополнительные функции, которые предоставляет ControllerBot.
Дополнительные функции подключенного бота
Форматирование. Здесь вы можете выбрать режим форматирования текста. Более подробно мы описали выше.
Предпросмотр ссылок. Здесь вы можете включить или отключить подгрузку ссылок.
Реакции по умолчанию. Данная опция в настройках ControllerBot позволяет включать или отключать реакции, которые автоматически будут прикрепляться к вашим постам. Более подробно мы об этом рассказали выше.
Основные команды ControllerBot
Бот выдаст следующий список команд:
/newpost — создает новый пост в выбранном канале
/addchannel — добавляет еще один канал
/mychannels — помогает управлять каналами, к которым подключен бот
/settings — вызов настроек бота, где вы можете настроить подключенные боты и выбрать язык бота
/lang — данная команда вызывает языковые настройки бота, в которых можно изменить язык интерфейса бота.
Справка и техподдержка ControllerBot
При возникновении вопросов по работе бота, вы всегда можете воспользоваться командой /help, чтобы вызвать справку. Бот выдаст ответ, в котором будет указана ссылка на веб-страницу с часто задаваемыми вопросами.
Если вы не найдете ответа на свой вопрос, то вы можете написать в техподдержку бота.
Актуальность
Напоследок стоит упомянуть, что ControllerBot был создан в те времена, когда мессенджер Телеграм не был оснащен всеми необходимыми инструментами для работы с каналами и постингом. И возможности бота существенно облегчали работу администратора канала.
Но на сегодняшний день Телеграм усовершенствовался и значительно расширил свой функционал. Например, в последних версиях мессенджера внедрены такие опции, как форматирование текста, вставка гиперссылок, создание и редактирование отложенных постов, прикрепление медиафайлов (фото, видео и аудио) к постам, просмотр статистики каналов (при условии, что на канал подписаны более 500 подписчиков), создание опросов и викторин, управление звуком уведомлений и одно из самых главных нововведений — возможность прикреплять специальную группу к каналу, в которой подписчики могут комментировать отдельные публикации.
Как вы видите, для управления каналом мессенджер Телеграм предоставляет администраторам достаточно много полезных функций. Если вы являетесь владельцем одного канала и не нуждаетесь в таких фишках, как реакции и URL-кнопки, то можно обойтись и без бота-помощника. Но если под вашим администрированием находятся несколько каналов, то удобнее будет ими управлять с помощью ControllerBot.
Telegram API vs Telegram Bot API
Рассказываю по порядку.
Телеграм использует собственный протокол шифрования MTProto. MTProto API (он же Telegram API) — это API, через который ваше приложение Телеграм связывается с сервером. Telegram API полностью открыт, так что любой разработчик может написать свой клиент мессенджера.
Для написания ботов был создан Telegram Bot API — надстройка над Telegram API. Перевод с официального сайта:
Почему-то мало кто знает о том, что Телеграм боты могут работать напрямую через Telegram API. Более того, таким образом можно даже обойти некоторые ограничения, которые даёт Bot API.
Вся информация ниже будет по умолчанию относиться и к Bot API, и к Telegram API. О различиях я буду упоминать. От некоторых ограничений Bot API можно избавиться с помощью локального сервера, об этом в конце статьи.
На чём пишут Телеграм-ботоы
Бот должен уметь отправлять запросы Телеграм-серверу и получать от него апдейты (updates, обновления).
Как получать апдейты в Bot API
Получать апдейты можно одним из двух способов:
Поллинг — просто регулярно отправлять запрос к серверу Телеграма для получения обновлений,
Вебхук — сделать так, чтобы Телеграм сам отправлял запросы по нужному URL.
Если вы попробуете загуглить, как написать Телеграм-бота на Python, вам предложат воспользоваться библиотеками python-telegram-bot и telebot. Но не стоит.
Ну, если вы только хотите познакомиться с разработкой ботов и написать своего hello-world-бота, то можете, конечно использовать и их. Но эти библиотеки могут далеко не всё. Среди разработчиков ботов лучшей библиотекой для ботов на Python считается aiogram. Она асинхронная, использует декораторы и содержит удобные инструменты для разработки. Ещё был хороший Rocketgram, но он давно не обновлялся.
Также ботов часто пишут на JavaScript, для этого обычно используется Telegraf. Библиотеки есть и для многих других языков, но используют их реже.
Пример кода бота
Если вы хотите получить какое-то представление о том, как вообще выглядит код бота, вот вам пример использования на aiogram с его странички на GitHub:
Этот бот будет отвечать на команды /start и и /restart.
Создание бота
Единственная информация о Телеграм-ботах, которой в интернете полным-полно: как создать бота. Это делается через специального бота BotFather. Когда вы создадите бота, BotFather даст вам его токен. Токен выглядит примерно так: 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw . Именно с помощью токена вы сможете управлять ботом.
Один пользователь может создать до 20 ботов.
В BotFather удобно управлять ботами своими командой /mybots .
Юзернеймы
При создании бота нужно выбрать юзернейм. После этого поменять его будет очень сложно.
Как поменять юзернейм бота
Если у вас есть бот, и вы хотите дать ему более короткий юзернейм (который может быть занят неработающим ботом), то вы, теоретически, можете это сделать через @BotSupport.
Для этого бот должен (внезапно) быть рабочим, а также поддерживать английский язык.
Принято использовать такой формат обращения в поддержку:
Если вы везунчик 9999 lvl — вам ответят.
Оформление бота
Открыв бота, пользователи могут увидеть его профиль.
Оформление бота настраивается в BotFather: меню /mybots → Edit Bot . Там можно изменить:
Информация (About) — это текст, который будет виден в профиле бота.
Аватарка. Аватарки ботов, в отличие от аватарок пользователей и чатов, не могут быть анимированными. Только картинки.
Команды — тут имеются ввиду подсказки команд в боте. Подробнее о командах ниже.
Inline Placeholder — об инлайн-режиме см. ниже.
Стандартный совет: Потратьте свое время и заполните описание и информацию бота, чтобы пользователям было понятнее и проще его использовать. Можете оставить там свои контакты. И поставьте аватарку, чтобы бота было проще отличать от других чатов в списке.
Запуск бота пользователем
В Телеграме можно делиться файлами до 2 ГБ, но в Bot API более жесткие лимиты: боты могут скачивать файлы до 20 МБ и отправлять файлы до 50 МБ.
Работа с файлами в Bot API
Если бот уже загрузил файл на сервер Телеграма, то он может использовать file_id, чтобы отправлять этот файл.
Загружать файл на сервер можно в том числе и по URL файла.
Куда может писать бот
Бот может писать в личку только тем пользователям, которые его запустили. Пользователь может заблокировать бота, и тогда бот снова не сможет ему писать.
Боты не могут писать другим ботам.
В группе боту можно дать права администратора, чтобы он мог выполнять действия админов.
В одной группе может быть до 20 ботов. В публичные группы (группы с юзернеймом) ботов могут добавлять только админы.
Как боты добавляют кнопки
Подробнее о кнопках тоже
Супергруппы
На самом деле многие группы в Телеграме являются супергруппами.
Почему так? Раньше было четкое разделение на группы и супергруппы. По задумке, супергруппы — это группы для сообществ. Супергруппы могут иметь больше участников, публичные ссылки и другие плюшки.
Со временем, видимо, решили, что это неудобная концепция. Теперь обычная группа становится супергруппой, когда у группы меняются какие-нибудь настройки (подробнее тут). Вот такой костыль.
В этой статье под группами я подразумеваю и супергруппы, и обычные группы.
id пользователей и чатов
У каждого пользователя, бота, группы, канала в Телеграме есть собственный id. Различать чаты в коде бота следует именно по id, потому что он никогда не меняется.
В токене бота первая часть — это его id. Например, токен 110201874:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw принадлежит боту с id 110201874 .
В Bot API перед id супергрупп и каналов пишется -100. Так, id 1356415630 превращается в -1001356415630 . Осторожно: вы не сможете сохранить это значение в 32-битный тип числа.
Команды — о них в следующем пункте.
Я включил Privacy mode, а он не работает
Нужно удалить бота из группы и добавить заново.
Это могло нарушить работу антиспам- и других ботов.
Сейчас баг уже исправлен.
Команды
Команды подсвечиваются как ссылки: нажатие отправляет команду в чат.
Разметка в Telegram API (Телеграм боты)
Способы выделения текста:
Жирный текст
Моноширинный текст ("в строке" и "блоком")
Кнопки
Инлайн-кнопки
URL button — кнопка с ссылкой.
Switch to inline button. Кнопка для переключения в инлайн-режим (об инлайн-режиме см. ниже). Кнопка может открывать инлайн в том же чате или открывать меню для выбора чата. Можно указать в кнопке запрос, который появится рядом с никнеймом бота при нажатии на кнопку.
Дополнительные виды кнопок
Login URL button — специальная кнопка для авторизации пользователей на сайте. Использовалась, например, в официальном боте @discussbot (до добавления нативных комментариев в Телеграм).
Клавиатурные кнопки
Есть другой тип кнопок: keyboard buttons. Они отображаются вместо клавиатуры как подсказки. При нажатии на такую кнопку пользователь просто отправит этот текст.
При этом в личных чатах с помощью кнопки можно:
Запросить номер телефона пользователя,
Запросить геолокацию пользователя,
Открыть у пользователя меню создания опроса.
По умолчанию, если показать кнопки в группе, они будут видны всем пользователям. Вместо этого можно отобразить кнопки одновременно для этих пользователей:
Ещё о кнопках
Показать клавиатурные кнопки,
Убрать все клавиатурные кнопки,
Таким образом, нельзя показать оба типа кнопок одновременно.
Взаимодействие с ботом
Ссылки на Телеграм боты.
Юзернеймы ботов работают так же, как и любые другие юзернеймы в Телеграме: бота @examplebot можно открыть по ссылке t.me/examplebot.
Также существует прямая ссылка: tg://resolve?domain=examplebot
Подробнее о ссылках tg://
Такие ссылки могут не только заменять ссылки t.me, но и задавать свои действия. Например, tg://settings открывает настройки.
Список известных таких ссылок есть канале @DeepLink.
Ссылка на добавление в группу
По ссылке t.me/examplebot?startgroup=true у пользователя откроется меню: выбор группы для добавления бота.
Прямая ссылка: tg://resolve?domain=examplebot&startgroup=true
Диплинки
По ссылке t.me/examplebot?start=<ваш текст> пользователь может запустить бота с каким-то стартовым параметром ( <ваш текст> ).
Как это выглядит:
При переходе по ссылке бот открывается как обычно.
Часто диплинки используются для реферальных программ (в качестве параметра можно передавать id пользователя, который поделился ссылкой). Есть и другие применения. Телеграм боты.
Прямая ссылка: tg://resolve?domain=examplebot&start=<ваш текст>
Инлайн-режим. Телеграм боты.
Инлайн-режим (inline mode) — это специальный режим работы бота, с помощью которого пользователь может использовать бота во всех чатах.
В группе можно запретить использовать инлайн всем или некоторым участникам. В официальных приложениях Телеграм это ограничение объединено с ограничением на отправку стикеров и GIF.
Результаты инлайн-режима
Результаты можно отображать двумя способами:
Сеткой. Удобно для выдачи картинок.
- Вертикальным списком. Удобно для выдачи текста.
Можно совмещать два типа, но корректно отображается это только на Telegram Desktop.
Приватность и геопозиция в инлайне
Inline feedback
Inline feedback — это апдейты о выбранных инлайн-результатах. Включаются через BotFather.
Создание наборов стикеров для телеграм ботов
Боты (и только боты!) могут создавать наборы стикеров. При этом каждый набор стикеров должен принадлежать какому-то пользователю. Посмотреть свои наборы стикеров пользователь может с помощью бота @Stickers.
Телеграм боты. Платежи
Телеграм предоставляет ботам возможность принимать платежи от пользователей. Это делается через провайдеров ЮMoney, Сбербанк, Stripe и ещё 7.
Эта возможность используются редко, потому что для использования провайдеров нужно юридическое лицо.
Платежи, к тому же, не работают на iOS из-за ограничений Apple.
HTML-игры в ботах
Telegram Login Widget
Вы можете добавить на свой сайт авторизацию через Телеграм. Процесс авторизации будет проходить так:
Пользователь должен будет ввести свой номер телефона.
Бот Telegram попросит подтвердить вход.
Telegram Login Widget не связан с Login URL button (см. раздел про кнопки выше), а является его альтернативой.
Разработка Телеграм ботов
Какие апдейты можно получать
Получение апдейтов: Bot API vs Telegram API
Если вы получили апдейт в Bot API, то второй раз вы его уже не получите.
В Telegram API это не так: пользователь может пользоваться мессенджером через несколько клиентов, каждый из которых должен получать апдейты.
Если запустить для одного бота несколько программ на Telegram API, то каждая из них будет получать все апдейты.
Ограничения Bot API не позволяют сделать то же самое.
Лимиты
Конечно, на запросы к серверу существуют лимиты. В Bots FAQ на сайте Telegram названы следующие:
Эти лимиты не строгие, а примерные. Лимиты могут быть увеличены для больших ботов через поддержку.
Другие известные ограничения в Telegram собраны на limits.tginfo.me — см. раздел про ботов.
Рассылка по пользователям
30 пользователям в секунду.
Смена владельца бота
Осенью 2020 года появилась возможность передавать ботов другому человеку. Это можно сделать в настройках бота в BotFather. Для этого на вашем аккаунте должна быть включена двухфакторная авторизация — не менее, чем за 7 дней до передачи. Передать бота можно только пользователю, который что-либо ему писал.
Локальный сервер Bot API
Также осенью 2020 года исходники Bot API выложили на GitHub. Теперь вы можете поднять собственный сервер Bot API. На GitHub перечислены следующие преимущества:
Скачивание файлов с сервера без ограничения (ограничение на отправку файлов пользователями в Телеграме — 2 ГБ),
Загрузка файлов на сервер до 2000 МБ,
Загрузка файлов на сервер с помощью локального пути и URI файла,
Использование любого локального IP-адреса для вебхука,
Использование любого порта для вебхука,
Возможность увеличить максимальное число соединений до 100000,
Получение локального пути файла вместо загрузки файла с сервера.
Юзерботы
В начале статьи я рассказывал о том, что такое Telegram API и Telegram Bot API.
Юзерботов следует использовать аккуратно: за большую подозрительную активность аккаунт могут ограничить или забанить.
Заключение. Телеграм боты
Я постарался собрать в одном месте и структурировать информацию о всех возможностях Телеграм-ботов. Большое спасибо vanutp, NToneE и Grinrill за помощь с фактами. Если мы что-то забыли — пишите, исправлю.
Я специально не разделял большую статью на несколько постов, чтобы можно было быстро найти нужную информацию. К тому же, в начале статьи есть её содержание. Так что можете сохранить её к себе и использовать как справочник 🙂
Вообще интерфейс бота (то есть интерфейс чата) имеет много ограничений. Но плохо ли это? Действительно удобнее использовать инструмент, когда это часть привычной среды. Я часто прямо в переписке нахожу нужную картинку или информацию с помощью инлайн-ботов. Как заядлый пользователь Телеграма, я люблю использовать ботов. И создаю ботов. И вы создавайте.
Читайте также: