Telegram бот. Введение
Telegram – один из самых популярных мессенджеров, который работает на всех платформах:
- Компьютер (Windows, Linux, MacOS): официальный сайт
- Браузер: официальный сайт
- Android: Google Play
- iOS: App Store
Telegram позволяет создавать ботов – искусственных пользователей, действиями которых можно управлять из программы. Такой бот может писать вам сообщения, читать ваши сообщения и реагировать на них, отправлять в чат меню с кнопками и многое другое. ESP8266 может управлять таким ботом, что даёт нам огромные возможности: получение данных с датчиков или управление своим проектом из любой точки планеты, причём абсолютно бесплатно! Первым делом нужно зарегистрировать своего бота.
Регистрация бота
- Для создания своего бота нужно обратиться к “Бате” – @BotFather, открываем чат с ним
- Отправляем команду /newbot
- Нужно придумать и отправить публичное имя бота – оно может быть любым и его потом можно поменять
- Далее нужно придумать ник бота – это уникальное имя, оно не должно пересекаться с другими ботами и его нельзя будет изменить
- При успешном выборе имени Батя поздравит с регистрацией и отправит нам токен – длинный уникальный код, который даёт полный контроль над ботом. Кликните по нему, чтобы скопировать. Никому не показывайте этот код! Он понадобится нам дальше.
Поиск ID чата
Чтобы бот мог отправлять сообщения, он должен знать, кому их отправлять. Каждый аккаунт и каждый чат в Telegram имеет свой уникальный номер – ID, зная этот номер бот может написать в чат сообщение. Как его узнать?
- Запросить у специального бота
- Узнать в процессе работы с ботом, написав ему сообщение (рассмотрим в следующем уроке)
Диалог с ботом
Чтобы сразу узнать свой ID – открываем чат с ботом @IDBot и отправляем команду /getid – он отправит ваш ID. Это положительное целое число:
Чат (группа) с ботом
Если бот должен работать в группе – приглашаем его в эту группу, туда же приглашаем @IDBot и отправляем команду /getgroupid – он напишет ID чата. Это отрицательное целое число:
Задание стандартных команд (необязательно)
У ботов есть механизм команд – сообщений, начинающихся с символа / . Можно задать боту свой список команд, они будут выдаваться списком в чате с ботом и могут использоваться для взаимодействия с программой. Давайте создадим список команд:
- Возвращаемся к диалогу с Батей, отправляем команду /mybots
- Выбираем нужного бота из списка
- Пункт Edit Bot
- Пункт Edit Commands
- Вводим команды в следующем формате: имя — описание
В чате с ботом появится кнопка выбора команд:
При нажатии на неё откроется список:
Взаимодействие с ними мы разберём в следующих уроках.
Также при помощи чата с Батей можно настроить и другие параметры бота: название, описание, картинку и прочее. Важной настройкой является групповая приватность Group Privacy – возможность отправки команд боту из чатов (групп), по умолчанию она включена, то есть отправлять команды из чата нельзя.
Управление ботом
Управлять таким ботом можно практически с любой платформы, которая может программироваться и имеет выход в Интернет. На этом сайте мы рассмотрим работу с чат ботом при помощи esp8266, подробнее – в следующем уроке.
Telegram Bot как узнать chat_id зная username?
попробовал проследить выполнение самого запроса
Если я подставляю вместо того, что выделано синим свой @username или %40username телеграм бот не отправляет мне сообщение, выдает Bad Request: chat not found
Если я подставлю вместо того, что выделано синим свой chat_id я получаю сообщение.
получается sendMessage перестал отправлять сообщение по @username.
взглянул API вроде как указано, что по @username можно отправлять сообщение, по факту ничего не отправляется.
может я загнулся под конец дня. ) у всех так ?
Get Telegram Chat ID
Use the tool above to get the Chat ID of the group that your Bot is a member of.
Instructions
- Install Telegram,
- Create a Bot using the official telegram BotFather (it has a verified symbol next to it when you add it as a contact),
- Follow the prompts, and finally copy it’s HTTP API Token,
- Create a Group,
- Add the Bot to it,
- Select the Bot User from the Group members list,
- Press the SEND MESSAGE button,
- Send the User a message.
- Retrieve the Chat ID from the chat data using the above tool.
The tool also show the returned JSON response. You can search the returned JSON data for last chat message with type=group or type=private and copy the chat id from this. This is your Chat ID to use for sending messages to the group.
Alternatively, If you don’t want to use the tool above, you can visit this URL. https://api.telegram.org/botXXX:YYYYY/getUpdates (replace the XXX: YYYYY with your BOT HTTP API Token you just got from the Telegram BotFather)
Troubleshooting
If the above tool doesn’t return a node containing a chat group with an id, then try sending another message with different text.