Перейти к содержимому

Как настроить команды бота в телеграмме botfather

  • автор:

Рекомендации для обхода блокировки

Создание бота на левый/чужой аккаунт. Или создание на виртуальные симки. Скорей всего вы быстро потеряете своего бота!
Ник бота надо делать с умом. Его нельзя будет больше никогда поменять.

ВАЖНО! Советуем создавать бота на свой основой номер телефона. И это будет хозяин бота, не светить этот аккаунт нигде. А для поддержки использовать дополнительный аккаунт, который не жалко потерять.!

1. Чтобы создать бота нужно обратиться к телеграмм инструменту создания ботов — это @BotFather Ссылка для получения токена

2. Далее вводим токен у нас на сайте. (Это возможно только после авторизации)

Основные ошибки при создании бота в телеграм?

Ошибки, которые могут возникнуть при создании бота в Telegram, включают:
1. Неправильное имя бота: Имя бота должно быть уникальным и оканчиваться на «bot». Если имя уже занято или не соответствует требованиям, BotFather сообщит об ошибке.

2. Неправильный токен: При копировании токена от BotFather важно не допустить ошибок или лишних пробелов. Это может привести к неправильной аутентификации вашего бота.

3. Отсутствие подключения к интернету: Для создания бота и получения токена необходимо иметь активное интернет-соединение. Убедитесь, что ваше устройство подключено к интернету перед началом процесса создания бота.

4. Ограничения на создание ботов: В некоторых странах или регионах может быть ограничение на создание ботов в Telegram. Если вы сталкиваетесь с такой проблемой, попробуйте использовать VPN или обратитесь в службу поддержки Telegram для получения дополнительной информации.

5. Неправильная команда: Если вы отправляете неправильную команду BotFather, он может не распознать ваш запрос или ответить ошибкой. Убедитесь, что вы правильно вводите команды и следуете инструкциям BotFather.

Если вы столкнулись с какой-либо из этих ошибок, рекомендуется внимательно прочитать инструкции и повторить процесс создания бота снова. Если проблема не устраняется, обратитесь в службу поддержки https://t.me/BOTT_SUPPORT_BOT для получения дополнительной помощи.

Как изменять команды бота в botfather (описание, картинку и тп.)?

Настройка бота
Вот примеры написания основных команд и их расшифровка:

Create a Telegram bot through BotFather.

Zarakhovych Alexander

Creating a new bot
Use the /newbot command to create a new bot. The BotFather will ask you for a name and username, then generate an authorization token for your new bot.

The name of your bot is displayed in contact details and elsewhere.

The Username is a short name, to be used in mentions and t.me links. Usernames are 5–32 characters long and are case insensitive, but may only include Latin characters, numbers, and underscores. Your bot’s username must end in ‘bot’, e.g. ‘tetris_bot’ or ‘TetrisBot’.

The token is a string along the lines of [1066870955:AAGgA7X3b-dHAAWvK_stTpboqCh0pWGfn20] that is required to authorize the bot and send requests to the Bot API. Keep your token secure and store it safely, it can be used by anyone to control your bot.

Generating an authorization token
If your existing token is compromised or you lost it for some reason, use the /token command to generate a new one.

Botfather commands
The remaining commands are pretty self-explanatory:

  • /mybots— returns a list of your bots with handy controls to edit their settings
  • /mygames — does the same for your games

Edit bots

  • /setname — change your bot’s name.
  • /setdescription — change the bot’s description, a short text of up to 512 characters, describing your bot. Users will see this text at the beginning of the conversation with the bot, titled ‘What can this bot do?’.
  • /setabouttext — change the bot’s about info, an even shorter text of up to 120 characters. Users will see this text on the bot’s profile page. When they share your bot with someone, this text is sent together with the link.
  • /setuserpic — change the bot’s profile pictures. It’s always nice to put a face to a name.
  • /setcommands — change the list of commands supported by your bot. Users will see these commands as suggestions when they type / in the chat with your bot. Each command has a name (must start with a slash ‘/’, alphanumeric plus underscores, no more than 32 characters, case-insensitive), parameters, and a text description. Users will see the list of commands whenever they type '/' in a conversation with your bot.
  • /deletebot — delete your bot and free its username.

Edit settings

  • /setinline — toggle inline mode for your bot.
  • /setinlinegeo — request location data to provide location-based inline results.
  • /setjoingroups — toggle whether your bot can be added to groups or not. Any bot must be able to process private messages, but if your bot was not designed to work in groups, you can disable this.
  • /setprivacy — set which messages your bot will receive when added to a group. With privacy mode disabled, the bot will receive all messages. We recommend leaving privacy mode enabled. You will need to re-add the bot to existing groups for this change to take effect.

Manage games

  • /listgames — get a list of your games.
  • /newgame — create a new game.
  • /editgame — edit a game.
  • /deletegame — delete an existing game.

Please note, that it may take a few minutes for changes to take effect.

Status alerts

Millions choose Telegram for its speed. To stay competitive in this environment, your bot also needs to be responsive. In order to help developers keep their bots in shape, Botfather will send status alerts if it sees something is wrong.

We will be checking the number of replies and the request/response conversion rate for popular bots (

300 requests per minute: but don’t write this down as the value may change in the future). If we get abnormally low readings, you will receive a notification from Botfather.

Responding to alerts

By default, you will only get one alert per bot per hour. Each alert has the following buttons:

  • Fixed. Use this if you found an issue with your bot and fixed it. If you press the fix button, we will resume sending alerts in the regular way so that you can see if your fix worked within 5–10 minutes instead of having to wait for an hour.
  • Support. Use this to open a chat with BotSupport if you don’t see any issues with your bot or if you think the problem is on our side.
  • Mute for 8h/1w. Use this if you can’t fix your bot at the moment. This will disable all alerts for the bot in question for the specified period of time. We do not recommend using this option since your users may migrate to a more stable bot. You can unmute alerts in your bot’s settings via Botfather.

We will currently notify you about the following issues:

Your bot is sending much fewer messages than it did in the previous weeks. This is useful for newsletter-style bots that send out messages without prompts from the users. The larger the value, the more significant the difference.

Your bot is not replying to all messages that are being sent to it (the request/response conversion rate for your bot was too low for at least two of the last three 5-minute periods). To provide a good user experience, please respond to all messages that are sent to your bot. Respond to message updates by calling send… methods (e.g. sendMessage).

Your bot is not replying to all inline queries that are being sent to it, calculated in the same way as above. Respond to inline_query updates by calling answerInlineQuery.

Your bot is not replying to all callback queries that are being sent to it (with or without games), calculated in the same way as above. Respond to callback_query updates by calling answerCallbackQuery.

Please note that the status alerts feature is still being tested and will be improved in the future.

That’s it for the introduction. You are now definitely ready to proceed to the BOT API MANUAL.

If you’ve got any questions, please check out our Bot FAQ

After creating the bot, you need to deploy the project code to Heroku. And after starting the server on Heroku, you will need to run several commands:

Команды и оповещения @BotFather в Telegram

Для создания нового бота необходимо использовать команду /newbot . @BotFather запросит имя бота и имя пользователя бота (логин), а затем сгенерирует токен авторизации для вашего нового бота.

Имя бота отображается в контактных данных и в других местах.

Имя пользователя бота — это логин бота и представляет из себя короткое имя, которое будет использоваться в упоминаниях и ссылках на t.me . Обратите внимание, что в дальнейшем имя пользователя изменить нельзя! Имена пользователей (логины) состоят из 5–32 символов и нечувствительны к регистру, и могут включать только латинские символы, числа и символы подчеркивания. Имя пользователя бота должно заканчиваться на bot , например tetris_bot или TetrisBot .

Токен представляет собой строку типа 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw , которая требуется для авторизации бота и отправки запросов в API бота. Держите свой токен в безопасности и храните его, он может быть использован кем угодно для управления вашим ботом.

Пересоздание токена авторизации Telegram бота.

Если существующий токен скомпрометирован или был утерян по какой-либо причине, то используйте команду /token для создания нового.

Команды @BotFather

  • /mybots — возвращает список ваших ботов с удобными элементами управления для редактирования их настроек.
  • /mygames — делает то же самое для ваших игр
Команды редактирования Telegram бота:
  • /setname — изменить имя вашего бота.
  • /setdescription — изменить описание бота, текст до 512 символов, описывающий бота. Пользователи увидят этот текст в начале разговора с ботом, озаглавленный "What can this bot do?".
  • /setabouttext — изменить информацию о боте, более короткий текст до 120 символов. Пользователи увидят этот текст на странице профиля бота. Когда они делятся вашим ботом с кем-то, этот текст отправляется вместе со ссылкой.
  • /setuserpic — изменить фото профиля бота.
  • /setcommands — изменить список команд, поддерживаемых ботом. Пользователи будут видеть список команд всякий раз, когда они набирают '/' в разговоре с вашим ботом. Каждая команда имеет имя (должно начинаться с косой черты ‘/’ , буквенно-цифровое значение плюс подчеркивание, не более 32 символов, без учета регистра), параметры и текстовое описание.
  • /deletebot — команда удаляет бота и освобождает его логин.
Команды изменения настроек Telegram бота.
  • /setinline — переключает встроенный режим запросов для бота.
  • /setinlinegeo — запрашивает данные о местоположении для предоставления встроенных результатов на основе местоположения.
  • /setjoingroups — переключатель, который отвечает за то, можно ли добавлять бота в группы или нет. Любой бот должен уметь обрабатывать личные сообщения, но если создаваемый бот не предназначен для работы в группах, то можно отключить этот режим.
  • /setprivacy — установить, какие сообщения будет получать бот при добавлении в группу. Если режим конфиденциальности отключен, то бот будет получать все сообщения. Мы рекомендуем оставить режим конфиденциальности включенным. Вам нужно будет повторно добавить бота в существующие группы, чтобы это изменение вступило в силу.
Команды управления играми.
  • /newgame — создать новую игру.
  • /listgames — получить список ваших игр.
  • /editgame — редактировать игру.
  • /deletegame — удалить существующую игру.

Обратите внимание, что изменения вступят в силу не сразу, а через несколько минут.

Ограничения и предупреждения о статусе Telegram бота.

Миллионы выбирают Telegram за его скорость. Чтобы оставаться конкурентоспособным в этой среде, ваш бот также должен быть быстрым. Чтобы помочь разработчикам поддерживать своих ботов в форме, @BotFather отправляет оповещения о статусе, если видит, что что-то не так.

Telegram будет проверять количество ответов и коэффициент конверсии запросов/ответов для популярных ботов (300 запросов в минуту: это значение может измениться в будущем). Если имеем аномально низкие показания, то получим уведомление от @BotFather .

Ответы на предупреждения.

По умолчанию вы будете получать только одно предупреждение на одного бота в час. Каждое предупреждение имеет следующие кнопки:

  • Fixed . Используйте эту кнопку, если обнаружили проблему с вашим ботом и исправили ее. Если нажать на кнопку Fixed , то отправку предупреждений в обычном режиме возобновится, для того чтобы увидеть, сработало ли исправление в течение 5–10 минут, вместо того, чтобы ждать час.
  • Support . Используйте эту кнопку, чтобы открыть чат с @BotSupport , если не видите проблем с ботом или считаете, что проблема на стороне Telegram.
  • Mute for 8h/1w . Используйте кнопку, если нет возможности исправить бота в данный момент. Это отключит все предупреждения для рассматриваемого бота за указанный период времени. Мы не рекомендуем использовать эту опцию, поскольку пользователи могут перейти на более стабильный бот. Вы можете включить оповещения в настройках своего бота через @Botfather .

Отслеживаемые проблемы Telegram бота.

В настоящее время Telegram будет уведомлять о следующих проблемах:

Too few private messages are sent compared to previous weeks: .

Бот отправляет гораздо меньше сообщений, чем в предыдущие недели. Такие уведомления полезны для ботов в стиле новостной рассылки, которые рассылают сообщения без возможности получения ответов от пользователей. Чем больше значение, тем значительнее разница.

Too few replies to incoming private messages. Conversion rate: .

Бот не отвечает на все сообщения, которые ему отправляются (коэффициент конверсии запроса/ответа для бота был слишком низким по крайней мере в течение двух из последних трех 5-минутных периодов). Чтобы обеспечить хороший пользовательский опыт, пожалуйста, отвечайте на все сообщения, которые отправляются вашему боту.

Too few answers to inline queries. Conversion rate: .

Бот не отвечает на все встроенные запросы, которые ему посылаются, рассчитанные таким же образом, как и выше. Отвечайте на обновления inline_query , вызывая answerInlineQuery .

Too few answers to callback queries. Conversion rate: или Too few answers to callback game queries. Conversion rate: .

Бот не отвечает на все запросы обратного вызова, которые ему посылаются (с играми или без них), рассчитанные таким же образом, как и выше. Отвечайте на сообщения callback_query , вызывая answerCallbackQuery .

Обратите внимание, что функция оповещения о состоянии все еще тестируется и будет улучшена в будущем.

Инструкция: Как создавать ботов в Telegram

24 июня разработчики Telegram открыли платформу для создания ботов. Новость кого-то обошла стороной Хабр, однако многие уже начали разрабатывать викторины. При этом мало где указаны хоть какие-то примеры работающих ботов.

Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы к Telegram Bot API. Причем API довольное простое — бот обращается на определенный URL с параметрами, а Telegram отвечает JSON объектом.

Рассмотрим API на примере создания тривиального бота:

1. Регистрация

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

Пишем ему /start и получаем список всех его команд.
Первая и главная — /newbot — отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя — оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.

Для начала работы этого уже достаточно. Особо педантичные могут уже здесь присвоить боту аватар, описание и приветственное сообщение.

Не забудьте проверить полученный токен с помощью ссылки api.telegram.org/bot<TOKEN>/getMe, говорят, не всегда работает с первого раза.

2. Программирование

Создавать бота буду на Python3, однако благодаря адекватности этого языка алгоритмы легко переносятся на любой другой.

Telegram позволяет не делать выгрузку сообщений вручную, а поставить webHook, и тогда они сами будут присылать каждое сообщение. Для Python, чтобы не заморачиваться с cgi и потоками, удобно использовать какой-нибудь реактор, поэтому я для реализации выбрал tornado.web. (для GAE удобно использовать связку Python2+Flask)

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

Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.

Здесь CMD — словарь доступных команд, а send_reply — функция отправки ответа, которая на вход принимает уже сформированный объект Message.

Собственно, её код довольно прост:

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

3. Команды

Перво-наперво, необходимо соблюсти соглашение Telegram и научить бота двум командам: /start и /help:

Структура message[‘from’] — это объект типа User, она предоставляет боту информацию как id пользователя, так и его имя. Для ответов же полезнее использовать message[‘chat’][‘id’] — в случае личного общения там будет User, а в случае чата — id чата. В противном случае можно получить ситуацию, когда пользователь пишет в чат, а бот отвечает в личку.

Команда /start без параметров предназначена для вывода информации о боте, а с параметрами — для идентификации. Полезно её использовать для действий, требующих авторизации.

После этого можно добавить какую-нибудь свою команду, например, /base64:

Для пользователей мобильного Telegram, будет полезно сказать @BotFather, какие команды принимает наш бот:
I: /setcommands
BotFather : Choose a bot to change the list of commands.
I: @******_bot
BotFather: OK. Send me a list of commands for your bot. Please use this format:

command1 — Description
command2 — Another description
I:
whoisyourdaddy — Information about author
base64 — Base64 decode
BotFather: Success! Command list updated. /help

C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.

4. Свобода

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

UPD: Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/<command>) (https://core.telegram.org/bots#privacy-mode)

  • All messages that start with a slash ‘/’ (see Commands above)
  • Messages that mention the bot by username
  • Replies to the bot’s own messages
  • Service messages (people added or removed from the group, etc.)

Чтобы бот получал все сообщения в группах пишем @BotFather команду /setprivacy и выключаем приватность.

Для начала в Handler добавляем обработчик:

А потом в список команд добавляем псевдо-речь:

Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map — удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.

5. Не текст.

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

Для примера расширим словарь RESPONSES:

И будем отлавливать текст <at_sticker>:

Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:

И все, теперь бот будет время от времени присылать стикер вместо времени:

6. Возможности

Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие).

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

7. Ограничения

К сожалению, на данный момент существует ограничение на использование webHook — он работает только по https и только с валидным сертификатом, что, например для меня пока критично за счет отсутствия поддержки сертифицирующими центрами динамических днс.

К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:

P.S. По пункту 7 нашел удобное решение — размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом.

UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч ‘method’: ‘sendMessage’ (или любой другой метод, используемый ботом).

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *