We offer two kinds of APIs for developers. The Bot API allows you to easily create programs that use Telegram messages for an interface. The Telegram API and TDLib allow you to build your own customized Telegram clients. You are welcome to use both APIs free of charge.
You can also add Telegram Widgets to your website.
Designers are welcome to create Animated Stickers or Custom Themes for Telegram.
Bot API
This API allows you to connect bots to our system. Telegram Bots are special accounts that do not require an additional phone number to set up. These accounts serve as an interface for code running somewhere on your server.
To use this, you don’t need to know anything about how our MTProto encryption protocol works — our intermediary server will handle all encryption and communication with the Telegram API for you. You communicate with this server via a simple HTTPS-interface that offers a simplified version of the Telegram API.
Learn more about the Bot API here »
Bot developers can also make use of our Payments API to accept payments from Telegram users around the world.
TDLib – build your own Telegram
Even if you’re looking for maximum customization, you don’t have to create your app from scratch. Try our Telegram Database Library (or simply TDLib), a tool for third-party developers that makes it easy to build fast, secure and feature-rich Telegram apps.
TDLib takes care of all network implementation details, encryption and local data storage, so that you can dedicate more time to design, responsive interfaces and beautiful animations.
TDLib supports all Telegram features and makes developing Telegram apps a breeze on any platform. It can be used on Android, iOS, Windows, macOS, Linux and virtually any other system. The library is open source and compatible with virtually any programming language.
Learn more about TDLib here »
Telegram API
This API allows you to build your own customized Telegram clients. It is 100% open for all developers who wish to create Telegram applications on our platform. Feel free to study the open source code of existing Telegram applications for examples of how things work here. Don’t forget to register your application in our system.
- Getting Started
- Security
- Optimization
- API methods
Getting started
Creating an application
How to get your application identifier and create a new Telegram app.
User authorization
How to register a user’s phone to start using the API.
Two-factor authentication
How to login to a user’s account if they have enabled 2FA, how to change password.
QR code login
QR code login flow
Error handling
How to handle API return errors correctly.
Handling different data centers
How to connect to the closest DC access point for faster interaction with the API, and things to watch out for when developing a client.
Handling updates
How to subscribe to updates and handle them properly.
Handling PUSH-notifications
How to subscribe and handle them properly.
Channels, supergroups, gigagroups and basic groups
How to handle channels, supergroups, gigagroups, basic groups, and what’s the difference between them.
Forums
Telegram allows creating forums with multiple distinct topics.
Channel statistics
Telegram offers detailed channel statistics for channels and supergroups.
Calling methods
Additional options for calling methods.
Uploading and Downloading Files
How to transfer large data batches correctly.
Pagination
How to fetch results from large lists of objects.
Client configuration
The MTProto API has multiple client configuration parameters that can be fetched with the appropriate methods.
Security
Secret chats, end-to-end encryption
End-to-end-encrypted messaging.
Security guidelines
Important checks required in your client application.
Perfect Forward Secrecy
Binding temporary authorization key to permanent ones.
End-to-End Encryption in Voice and Video Calls
End-to-end-encrypted calls.
Optimization
Client optimization
Ways to boost API interactions.
API methods
Available method list
A list of available high-level methods.
API TL-schema, as JSON
Text and JSON-presentation of types and methods used in API.
Available layer list
A list of available schema versions.
Other articles
Working with bots, using the MTProto API
How to work with bots using the MTProto API.
Commands
Bots offer a set of commands that can be used by users in private, or in a chat.
Buttons
Users can interact with your bot via buttons or even inline buttons, straight from inline messages in any chat.
Menu button
Bots can choose the behavior of the menu button shown next to the text input field.
Inline queries
Users can interact with your bot via inline queries, straight from the text input field in any chat.
Games
Bots can offer users HTML5 games to play solo or to compete against each other in groups and one-on-one chats; how to work with games in the MTProto API.
Web apps
Bots can offer users interactive HTML5 web apps to completely replace any website.
Attachment menu
Bots can install attachment menu entries, offering conveniently accessible, versatile web apps.
Search & filters
Telegram allows applying detailed message filters while looking for messages in chats.
This allows the server to filter messages based on a text query, and even on their type, and this feature is often used by graphical clients to implement features like the chat gallery, chat profile pictures and more.
Polls
Telegram allows sending polls and quizzes, that can be voted on by thousands, if not millions of users in chats and channels.
Reactions
Telegram allows users to react on any message using specific emojis, triggering cute lottie animations.
Emoji status
Telegram allows users to set an emoticon or a custom emoji as status, to show next to their name in chats and profiles.
Invite links and join requests
Channels, basic groups and supergroups may have a public username or a private invite link: private invite links may be further enhanced with per-user join requests.
Admin, banned and default rights for channels, supergroups and groups
How to handle admin permissions, granular bans and global permissions in channels, groups and supergroups.
Discussion groups
Groups can be associated to a channel as a discussion group, to allow users to discuss about posts.
Channel comments and message threads
Telegram allows commenting on a channel post or on a generic group message, thanks to message threads.
Admin log
Both supergroups and channels offer a so-called admin log, a log of recent relevant supergroup and channel actions, like the modification of group/channel settings or information on behalf of an admin, user kicks and bans, and more.
Pinned messages
Telegram allows pinning multiple messages on top of a specific chat.
Mentions
Telegram allows mentioning other users in case of urgent duckling matters, and quickly navigating to those mentions in order to read them as swiftly as possible.
Scheduled messages
Telegram allows scheduling messages.
Live geolocations
Telegram allows sending the live geolocation of a user in a chat, optionally setting a proximity alert.
Min constructors
Sometimes, user and channel constructors met in group chat updates may not contain full info about the user: how to handle such constructors.
Account deletion
How to delete a Telegram account.
Imported messages
Telegram allows importing messages and media from foreign chat apps.
Telegram Passport
How to work with Telegram Passport directly using the MTProto API.
Telegram Payments
How to work with Telegram Payments directly using the MTProto API.
Styled text with message entities
How to create styled text with message entities
Working with stickers
Telegram clients support displaying animated, static and video stickers.
Working with custom emojis
Telegram allows including custom animated, static and video emojis directly inside of messages.
Working with animated emojis
Graphical telegram clients should transform emojis into their respective animated version.
Working with animated dice
Telegram supports sending animated dice emojis.
Message drafts
How to handle message drafts
Folders
Working with folders
Top peer rating
If enabled, the rating of top peers indicates the relevance of a frequently used peer in a certain category (frequently messaged users, frequently used bots, inline bots, frequently visited channels and so on).
Handling file references
How to handle file references.
Seamless Telegram Login
Handle Seamless Telegram Login URL authorization requests.
Wallpapers
How to work with chat backgrounds.
Notification sounds
How to work with chat notification sounds.
Message transcription
How to transcribe voice messages.
Message translation
Telegram allows translating chat messages, and Telegram Premium users may even enable real-time chat translation.
Native antispam system
Admins of supergroups with a certain number of members can choose to unleash the full proactive power of Telegram’s own antispam algorithms – turning on the new Aggressive mode for the automated spam filters.
Collectible usernames
Telegram users can make it easy for others to contact them or find their public groups and channels via usernames: clients can also assign multiple collectible usernames to accounts, supergroups and channels they own.
Web events
When interacting with HTML5 games and the websites of payment gateways, Telegram apps should expose the following JS APIs.
I am trying to find the Api Key for Telegram but I cannot find it. Where do I find it on the website? If I use the Api Id, I get the error Incorrect Token Format
in the C# Console Application.
武状元 Woa
6803 gold badges10 silver badges23 bronze badges
asked Apr 8, 2017 at 8:28
1
Like ihoru mentioned in his answer, you can find all of your bots relevant information in BotFather.
So navigate to @BotFather in Telegram. If you have not yet created a bot do so by entering /newbot
and follow the instructions on screen. You should get your key at the end of the process.
But now let’s assume you already have a bot and can’t find the key anymore. Again, go to @BotFather but this time enter /mybots
. You should see something like this:
Click/Touch whatever bot you would like your API key for, then you should see this:
Click the API Key button and tadaa there is your key:
answered Apr 10, 2017 at 7:51
Hoi_AHoi_A
4721 gold badge10 silver badges20 bronze badges
You mean Telegram API for create a telegram application using C#, not Telegram Bot API, right? to get API key. Please see the step by step below or for detail information you can see this link
- Sign up for Telegram using any application.
- Log in to your Telegram core: https://my.telegram.org.
- Go to ‘API development tools’ and fill out the form.
- You will get basic addresses as well as the api_id and api_hash parameters required
for user authorization. - For the moment each number can only have one api_id connected to it.
But if you need API for Telegram Bot, You can check the API your bot using BotFather.
for detail, you can check on this link
I hope this is useful for you.
answered Jan 11, 2019 at 11:25
answered Apr 8, 2017 at 10:53
ihoruihoru
1,9151 gold badge16 silver badges15 bronze badges
2
Are you asking for finding bot’s token ?
or are looking for telegram client api code ?
@BotFather , gives you the token of each bot you made.
for getting api token for making client , you must make developer account for telegram. it can be you personal account for telegram .
answered Apr 10, 2017 at 11:33
Время на прочтение
4 мин
Количество просмотров 19K
Всем привет, это первый урок из курса по разработке ботов для Telegram. В данном курсе, мы с вами разберём как создавать ботов для Telegram на PHP. Я расскажу вам как отправлять текстовые сообщения, как отправлять файлы, как получать и обрабатывать сообщения от пользователей и по итогу мы с вами напишем скрипт для быстрого создания бота для Telegram на PHP.
В первом уроке мы с вами рассмотрим основные понятия связанные с API. Я вам расскажу что такое API методы, хуки, покажу на примере Telegram построение URL для создания запросов и расскажу о том как создаются простые API запросы на PHP.
Полный список всех записей курса находится на сайте или в публикациях на Хабр.
Для отправки и получения запросов через API, вам лучше использовать виртуальный хостинг, так как локальный хостинг не сможет получать данные через хуки.
Основные понятия
Давайте рассмотрим основные понятия для работы с API.
API (Application Programming Interface) — это набор способов и правил, по которым различные программы общаются между собой и обмениваются данными.
Метод API — это определённое действие, которое должно выполнить приложение основываясь на полученных данных (отправить сообщение, вернуть список чатов, отправить картинку и т.д.)
Token (токен) — это уникальный ключ бота, необходимый для отправки запросов.
Как отправлять HTTP запросы на PHP
Для отправки HTTP запросов можно использовать функцию file_get_contents(), где в качестве первого главного параметра указывается ссылка. Данная функция отлично подходит для отправки GET запросов, но к сожалению с помощью функции file_get_contents() нельзя отправлять POST запросы и поэтому для отправки POST запросов мы будем использовать библиотеку Curl.
Curl — это библиотека предназначенная для получения и передачи данных через такие протоколы, как HTTP, FTP, HTTPS.
Подробнее о Curl вы можете почитать на моём сайте.
Виды взаимодействия с приложением через API
Существует 2 вида взаимодействия с приложением через API. Первое это от клиента к серверу, а второе от сервера к клиенту. Клиентом в данном случае является ваше приложение (сайт), а в качестве сервера выступает сайт на который вы отправляете запросы (в нашем случае, это Telegram).
API запрос — это способ общения с программой, по средствам отправки данных от клиента — серверу.
Hooks (Хуки) — это способ общения с программой, по средствам отправки данных от сервера — клиенту. То есть при определённых изменениях в программе, сервер (приложение) будет отправлять данные на указанный скрипта клиента.
Документация для работы с API Telegram
Все методы и параметры для запросов вы можете найти в официальной документации Telegram.
Telegram Bot API — https://core.tlgr.org/bots/api
К данному сайту мы будем ссылаться на протяжение всего курса.
Работа с документацией для Telegram
Документация для создания Telegram ботов разделена на несколько разделов.
В разделе Recent changes вы можете найти информацию об обновлениях Telegram. Здесь описаны версии и нововведения которые были внесены в функционал мессенджера.
Разделы Authorizing your bot и Making requests описывают способы авторизации ботов и способы создания запросов для работы с ботами.
Раздел Getting updates описывает способы получения обновлений взаимодействия с ботами. При взаимодействие пользователя с ботов, все его действия, по стандарту, записываются на сервера Telegram, и для того чтобы получить к ним доступ, необходимо отправить запрос getUpdates.
Отправив запрос getUpdates вы можете получить id последнего пользователя который написал боту, узнать его ник, текст сообщения и дату отправки. Если бот добавлен в сообщество, то вы можете получить id сообщества.
В разделе Getting updates так же описаны правила настройки хуков, что позволяет отправлять любые изменения на сервер разработчика. Но об этом мы поговорим позднее, сейчас давайте продолжим знакомство с документацией.
Следующий раздел, который нас интересует называется — Available types. Данный раздел описывает все типы данных которые возвращает нам Telegram. Когда ваш скрипт отправляет запрос, то обработав его, Telegram вернёт вам ответ в формате JSON строки, в котором описаны специальные параметры.
Например если вы отправляете сообщение, то Telegram вернёт вам массив в котором указаны id созданного сообщения, id пользователя, дата создания сообщения и много другое. Все эти данные вы можете разобрать и записать в базу данных.
Далее описан раздел, с которым нам придётся работать больше всего — это Available methods, методы для взаимодействия с ботом. Советую вам пройтись по всем методам и изучить все возможности работы с ботами.
Вкратце скажу что здесь описаны методы для отправки сообщений, файлов, изображений и многое другое. Все методы имеют понятные названия и описанные параметры, что позволяет легко читать документацию, даже без знания английского языка.
Ну и в конце у нас описаны методы для работы со стикерами, играми в Telegram, методы для работы с оплатой в Telegram.
Структура URL для отправки запросов в Telegram
API Telegram имеет простую и понятную структуру урлов для отправки запросов.
Вот пример URL для создания запросов к боту:
https://api.telegram.org/bot{token}/{method}
{token} — это уникальный ключ, который выдаётся при создание бота;
{method} — это метод запроса по которому мы будем получать или отправлять определённые данные. В зависимости от названия метода, мы будем выполнять разные действия.
Примеры URL для запросов
Данные примеры используются только для наглядности построения URL, токен указанный в URL не привязан ни к одному боту!
Вот так выглядит отправка сообщений методом GET. Первая часть URL содержит домен api.telegram.org, далее прописываем строку bot с токеном который нам даётся при создание бота, после чего указываем метод sendMessage и перечисляем GET параметры.
https://api.telegram.org/bot546445612928:AAHjk6643OYgWHim_TICgsaF9NDDVXYnKzA/sendMessage?chat_id=<ID чата>&text=<text>
Отправка файлов в чат выглядит аналогично, только метод sendMessage заменяется на sendDocument. И здесь не перечисляются GET параметры, после указания метода, так как мы отправляем данные методом POST.
https://api.telegram.org/bot543264456928:AAHjk6643OYgWHim_TICgsaF9NDDVXYnKzA/sendDocument
Отправка изображений в чат:
https://api.telegram.org/bot546413456928:AAHjk6643OYgWHim_TICgsaF9NDDVXYnKzA/sendPhoto
На этом знакомство с документацией Telegram заканчивается. В следующем уроке, мы с вами создадим первого бота и попробуем отправить простые запросы.
Второй урок уже на Хабре — https://habr.com/ru/post/697000/
Запросы к API
Основная информация о запросах
Запрос — обращение от одного сервиса к другому сервису для получения или отправки информации.
Запросы можно делать к любому стороннему сервису, который их поддерживает. Если вы не можете найти документацию к API в публичном доступе, свяжитесь с поддержкой или разработчиками системы.
- Отправка методом GET →
- Отправка методом POST →
- Удаление последнего сообщения от бота с помощью POST-запроса →
- Удаление последнего сообщения от пользователя с помощью POST-запроса →
- Удаление любого сообщения с помощью POST-запроса →
- Отправка стикера с помощью POST-запроса →
- Отправка запроса в GPT с помощью POST-запроса →
- Обработка ответа — объект →
Ботмама умеет отправлять запросы и принимать ответы только в формате JSON. Если нужная вам система не поддерживает JSON, нужно искать сервис, который изменяет формат запроса, или писать кодом скрипт обработки на сервере. Ещё можно использовать сервисы, которые заменяют интеграцию запросами — например, Zapier.
Объем массива с объектами для отправления запросом может быть не более 1 Мб
Существует множество типов запросов, мы используем только самые распространённые: GET, POST, PUT, PATCH, DELETE.
- GET чаще всего используется как запрос получения информации. В отдельных случаях он может использоваться равнозначно с другими типами. Например, в Telegram можно использовать и GET, и POST для одинаковых запросов.
- POST используется для отправки информации и создания объектов. Этим методом чаще всего создаются заявки, формируются заказы и т.д.
- PUT обновляет информацию об объекте.
- PATCH частично обновляет информацию об объекте.
- DELETE удаляет созданный объект.
Тело в GET запросе можно передавать в строке URL, для остальных запросов — только в специальном поле компонента.
Основная информация об ответах
Ответом на запрос может быть информация об ошибке или об удачном запросе с дополнительными данными или без них.
Об ответах на запросы можно подробно узнать в Википедии.
Чаще всего приходят ответы успеха и ошибок.
Если запрос прошёл успешно, код будет иметь значение, начинающееся на 2:
- 200 OK — успешный запрос.
- 201 Created — в результате успешного выполнения запроса был создан новый ресурс.
- 202 Accepted — запрос был принят на обработку, но она не завершена.
Если запрос не прошёл из-за ошибки параметров запроса, Ботмама считает его успешным. Такие ошибки начинаются на 4:
- 400 Bad Request — сервер обнаружил в запросе клиента синтаксическую ошибку. Этот код используется для любых ошибок такого типа, если разработчик сервиса не вложил другие значения.
- 401 Unauthorized — для доступа к запрашиваемому ресурсу требуется авторизация.
- 403 Forbidden — сервер понял запрос, но он отказывается его выполнять из-за ограничений в доступе для клиента к указанному ресурсу.
- 404 Not Found — запрашиваемый ресурс не был найдет или не существует.
Если запрос не прошёл из-за ошибки сервера (запрос упал по таймауту, сервер недоступен или тело не удалось распарсить), бот исполняет экран ошибки. В остальных случаях сработает экран успеха. Если ответ пришел валидным со статусом не 200, нужно установить компонент Развилка после запроса и смотреть на статус в теле. Исходя из этого направлять на нужный экран. Ошибки сервера начинаются на 5:
- 500 Internal Server Error — любая внутренняя ошибка сервера. Этот код используется, если разработчик не добавил код для описания данной ошибки.
- 501 Not Implemented — сервер не может обработать запрос. Например, вы используете несуществующий метод.
- 502 Bad Gateway — когда сервер, к которому вы делаете запрос, фактически является буфером между вами и другим сервером, получает некорректный ответ от другого сервера.
- 503 Service Unavailable — сервер временно не может обрабатывать запросы. Такие ошибки возникают, когда сервер выключен, не имеет доступа к Сети или ограничен в доступе.
- 504 Gateway Timeout — когда сервер, к которому вы делаете запрос, фактически является буфером между вами и другим сервером, не получает ответ от другого сервера.
Отправка методом GET
Создание URL для GET-запроса
Для примера мы будем использовать запросы к Telegram bot API.
1. Добавим токен бота в URL-запрос.
Все запросы в Telegram создаются по шаблону:
https://api.telegram.org/bot<token>/НАЗВАНИЕ_МЕТОДА
Каждому боту при создании присваивается уникальный токен вида 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11.
Авторизация запросов к Telegram проходит по токену бота. Это значит, что срабатывать запрос будет в боте, токен которого вы указали. К примеру, отправляя запрос с текстом, вы можете указать токен другого бота, и тогда сообщение будет приходить в него.
Пока что URL будет таким:
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/НАЗВАНИЕ_МЕТОДА
Где вместо 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 — токен вашего бота.
2. Добавим метод API.
Метод API — действие, которое должна совершить система в заданном боте.
Один из самых простых методов — sendMessage. Он отправляет текст.
После вставки метода API наш шаблон выглядит так:
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage
3. Добавим параметры запроса.
Параметры запроса — обязательные и дополнительные данные, которые конкретизируют, какое действие произойдёт. Например, параметры получателя или текст, который ему придет.
Обязательными параметрами являются chat_id и text:
- chat_id — уникальный идентификатор пользователя в Telegram. Его мы получаем из переменной {{this_user.platform_id}}. Чтобы отправить сообщение определённому пользователю, нужно вставить значение его переменной. В нашем примере мы выводим значение из переменных пользователя.
- text — текст сообщения, которое мы отправляем.
Для передачи пробелов в URL запроса нужно заменять их знаком +. Если отправить текст без замены, он оборвётся на первом пробеле.
Для запроса методом GET метод API и параметры передаются в URL запроса. Параметры от метода API отделяются знаком вопроса. Значение параметра отправляется после знака равенства. Между собой параметры отделяются знаком &.
4. Формируем шаблон GET-запроса.
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage?параметр1=значение1&параметр2=значение2
Вместо параметра1 добавим chat_id, значение1 выведем из переменных {{this_user.platform_id}}.
При необходимости, в значении1 можно указать конкретное значение.
Вместо параметра2 добавим text, в значение2 напишем текст, который должен прийти в бота.
URL GET-запроса готов:
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage?chat_id={{this_user.platform_id}}&text=Привет+из+бота!
Настройка компонента
1. Добавьте компонент Запрос на экран.
2. Выберите Метод запроса — GET.
3. Укажите URL запроса.
4. Укажите Экран, который исполнится при удачном выполнении запроса.
5. Укажите Экран, который выполнится при ошибке запроса.
6. Если требует API, добавьте дополнительные заголовки запроса в выпадающем меню компонента. Не удаляйте заголовки по умолчанию.
7. Задайте Имя переменной для тела ответа, если нужно записать ответ от сервера не в last_request, куда ответ приходит по умолчанию.
8. Задайте Имя переменной для кода ответа, если нужно записать ответ от сервера не в last_request_status_code, куда ответ приходит по умолчанию.
9. Задайте Имя переменной для заголовков ответа, если предполагается, что в заголовках придут важные данные. Например: токены авторизации, куки, подпись HMAC или еще что-то, что может потребоваться дальше для использования в боте.
10. Разверните настройки компонента для продолжения.
11. Отметьте галочками, какие статусы ответов будут считаться успешными, а какие — нет.
12. Для использования данных для авторизации по http basic authentication отметьте галочкой Использовать HTTP-авторизацию.
13. Отметьте галочкой Кодировать тело запроса, если нужно передать параметры по стандарту Юникод.
14. Отметьте галочкой Пропустить проверку HTTPS-сертификата, если у вас возникли проблемы с валидностью сертификата. Бот продолжит работу, но мы рекомендуем исправлять проблемы с сертификатом как можно быстрее.
Отправка методом POST
Создание URL для POST-запроса
Так как в POST запросе, параметры запроса и их значения составляют тело запроса, то в строке URL остаются только:
https://api.telegram.org/bot<token>/НАЗВАНИЕ_МЕТОДА
Где <token> — токен бота, где будет срабатывать запрос.</token>
Пример токена: 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11.
Название метода оставим, как в прошлом примере — sendMessage.
Получаем URL такого вида:
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendMessage
Параметры в URL, как в GET запросе, добавлять не нужно.
Для метода POST, в URL передаётся только метод API, параметры отправляются в теле запроса в формате JSON.
JSON — один из форматов данных. Он состоит из пар данных: ключ-значение. Ключ — название параметра, значение — значение параметра (может быть определенным или переменной).
Чтобы сделать тело с нашими параметрами, указываем их в формате JSON:
{ "chat_id": "{{this_user.platform_id}}", "text": "Привет из бота!" }
Важно следить за синтаксисом. Если вы забудете поставить хотя бы один символ, запрос не сработает. Это самая распространённая ошибка при отправке запросов.
Переносить строки можно с помощью n, но такие символы ломают JSON. Чтобы JSON не ломался, нужно экранировать таким образом: /n. Но так сделать не получится, если мы отправляем в переменной var текст от пользователя. В таком случае, нужно использовать хелпер escapeJsonEntities таким образом: {{escapeJsonEntities var}}.
Настройка компонента
1. Добавьте компонент Запрос на экран.
2. Выберите Метод запроса — POST.
3. Укажите URL запроса.
4. Укажите Экран, который исполнится при удачном выполнении запроса.
5. Укажите Экран, который выполнится при ошибке запроса.
6. Тело запроса для метода POST указывается, если того требует API. Поддерживается только в формате JSON.
7. Если требует API, добавьте дополнительные заголовки запроса в выпадающем меню компонента. Не удаляйте заголовки по умолчанию.
8. Задайте Имя переменной для тела ответа, если нужно записать ответ от сервера не в last_request, куда ответ приходит по умолчанию.
9. Задайте Имя переменной для кода ответа, если нужно записать ответ от сервера не в last_request_status_code, куда ответ приходит по умолчанию.
10. Задайте Имя переменной для заголовков ответа, если предполагается, что в заголовках придут важные данные. Например: токены авторизации, куки, подпись HMAC или еще что-то, что может потребоваться дальше для использования в боте.
11. Разверните настройки компонента для продолжения.
12. Отметьте галочками, какие статусы ответов будут считаться успешными, а какие — нет.
13. Для использования данных для авторизации по http basic authentication отметьте галочкой Использовать HTTP-авторизацию.
14. Отметьте галочкой Кодировать тело запроса, если нужно передать параметры по стандарту Юникод.
15. Отметьте галочкой Пропустить проверку HTTPS-сертификата, если у вас возникли проблемы с валидностью сертификата. Бот продолжит работу, но мы рекомендуем исправлять проблемы с сертификатом как можно быстрее.
Удаление последнего сообщения от бота с помощью POST-запроса
По правилам Телеграма нельзя удалять сообщения, после отправки которых прошло более 48 часов
Удаление последнего сообщения с помощью Нативного запроса →
Для тестирования метода POST можно попробовать удалить предыдущее сообщение методом deleteMessage.
Обязательные параметры:
- chat_id — уникальный идентификатор пользователя в боте. Его мы получаем как основную переменную {{this_user.platform_id}}.
- message_id — уникальный идентификатор сообщения, находится в переменной {{lastMessageId}}.
Создадим POST-запрос deleteMessage в конструкторе:
1. Добавьте компонент Запрос на экран.
2. Выберите Метод запроса — POST.
3. Укажите URL запроса.
Путь запроса (URL) будет иметь такой вид:
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/deleteMessage
Где где 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 — токен вашего бота.
4. Укажите Экран, который исполнится при удачном выполнении запроса.
5. Укажите Экран, который выполнится при ошибке запроса.
6. Добавьте Тело запроса. Поддерживается тело только в формате JSON.
{ "chat_id": "{{this_user.platform_id}}", "message_id": "{{lastMessageId}}" }
7. Если требует API, добавьте дополнительные заголовки запроса в выпадающем меню компонента. Не удаляйте заголовки по умолчанию.
8. Задайте Имя переменной для тела ответа, если нужно записать ответ от сервера не в last_request, куда ответ приходит по умолчанию.
9. Задайте Имя переменной для кода ответа, если нужно записать ответ от сервера не в last_request_status_code, куда ответ приходит по умолчанию.
10. Задайте Имя переменной для заголовков ответа, если предполагается, что в заголовках придут важные данные. Например: токены авторизации, куки, подпись HMAC или еще что-то, что может потребоваться дальше для использования в боте.
11. Разверните настройки компонента для продолжения.
12. Отметьте галочками, какие статусы ответов будут считаться успешными, а какие — нет.
13. Для использования данных для авторизации по http basic authentication отметьте галочкой Использовать HTTP-авторизацию.
14. Отметьте галочкой Кодировать тело запроса, если нужно передать параметры по стандарту Юникод.
15. Отметьте галочкой Пропустить проверку HTTPS-сертификата, если у вас возникли проблемы с валидностью сертификата. Бот продолжит работу, но мы рекомендуем исправлять проблемы с сертификатом как можно быстрее.
Теперь последнее сообщение будет удаляться из диалога с ботом в мессенджере, если запрос такой запрос установить в конструкторе сразу за сообщением.
Все шаги по созданию запроса на удаление последнего сообщения от чат-бота вы можете посмотреть в видеоуроке:
Подобным образом можно удалить последнее сообщение от пользователя.
Все параметры будут такими же, как и в удалении последнего сообщения от бота, кроме Тела запроса.
Тело запроса будет таким:
{ "chat_id": "{{lastUpdate.update.chat.id}}", "message_id": "{{lastUpdate.update.message_id}}" }
Запрос должен срабатывать сразу после сообщения от пользователя, для этого необходимо перед запросом добавить компонент ожидающий ввода от пользователя.
Это может быть Развилка, Ввод от пользователя или на экран с запросом должна вести Перемотка с активным чекбоксом «Остановить бота после перемотки до следующего сообщения от пользователя».
Все шаги по созданию запроса на удаление последнего сообщения от пользователя вы можете посмотреть в видеоуроке:
Удаление любого сообщения с помощью POST-запроса
Методом deleteMessage также можно удалить любое сообщение от бота.
Для этого перезапишите {{lastMessageId}} удаляемого компонента в другую переменную с помощью компонента Запись переменной.
В поле Имя задайте новое имя переменной, в поле Значение впишите {{lastMessageId}}.
В нашем примере новое имя для переменной с сообщением — dlt.
В будущем добавим её в тело запроса на удаление в двойных фигурных скобках: {{dlt}}.
Для наглядного примера удаления любого сообщение от бота, а не только последнего, как в прошлом примере, экран с запросом добавим после всех сообщений.
После записи ID экрана в переменную, оформим запрос на удаление этого экрана.
Обязательные параметры:
- chat_id — уникальный идентификатор пользователя в боте. Его мы получаем как основную переменную {{this_user.platform_id}}.
- message_id — уникальный идентификатор сообщения, находится в переменной {{lastMessageId}}.
Создадим POST-запрос deleteMessage в конструкторе:
1. Добавьте компонент Запрос на экран.
2. Выберите Метод запроса — POST.
3. Укажите URL запроса.
Путь запроса (URL) будет иметь такой вид:
https://api.telegram.org/bot12345/deleteMessage
Где где 12345 — токен вашего бота.
4. Укажите Экран, который исполнится при удачном выполнении запроса.
5. Укажите Экран, который выполнится при ошибке запроса.
6. Добавьте Тело запроса. Поддерживается тело только в формате JSON.
Не забудем добавить нашу перезаписанную переменную в message_id.
{ "chat_id": "{{this_user.platform_id}}", "message_id": "{{dlt}}" }
7. Если требует API, добавьте дополнительные заголовки запроса в выпадающем меню компонента. Не удаляйте заголовки по умолчанию.
8. Задайте Имя переменной для тела ответа, если нужно записать ответ от сервера не в last_request, куда ответ приходит по умолчанию.
9. Задайте Имя переменной для кода ответа, если нужно записать ответ от сервера не в last_request_status_code, куда ответ приходит по умолчанию.
10. Задайте Имя переменной для заголовков ответа, если предполагается, что в заголовках придут важные данные. Например: токены авторизации, куки, подпись HMAC или еще что-то, что может потребоваться дальше для использования в боте.
11. Разверните настройки компонента для продолжения.
12. Отметьте галочками, какие статусы ответов будут считаться успешными, а какие — нет.
13. Для использования данных для авторизации по http basic authentication отметьте галочкой Использовать HTTP-авторизацию.
14. Отметьте галочкой Кодировать тело запроса, если нужно передать параметры по стандарту Юникод.
15. Отметьте галочкой Пропустить проверку HTTPS-сертификата, если у вас возникли проблемы с валидностью сертификата. Бот продолжит работу, но мы рекомендуем исправлять проблемы с сертификатом как можно быстрее.
Если все сделано правильно, то удаляться будет то сообщение, message_id которого мы перезаписали и затем добавили в Тело запроса.
Все шаги по созданию запроса на удаление любого сообщения от бота вы можете посмотреть в видеоуроке:
Отправка стикера с помощью POST-запроса
Отправим в чат стикер методом sendSticker.
Стикер можно отправлять как обычным Запросом к API, так и Нативным запросом.
Обязательные параметры:
- chat_id — уникальный идентификатор пользователя в боте. Его мы получаем как основную переменную {{this_user.platform_id}}.
- sticker — уникальный идентификатор стикера. ID стикера можно узнать, прислав стикер боту Sticker ID.
Создадим POST-запрос sendSticker в конструкторе:
1. Добавьте компонент Запрос на экран.
2. Выберите Метод запроса — POST.
3. Укажите URL запроса.
Путь запроса (URL) будет иметь такой вид:
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/sendSticker
Где 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11 — токен вашего бота.
4. Укажите Экран, который исполнится при удачном выполнении запроса.
5. Укажите Экран, который выполнится при ошибке запроса.
6. Добавьте Тело запроса. Поддерживается тело только в формате JSON.
{ "chat_id": "{{this_user.platform_id}}", "sticker": "12345" }
Где 12345 — ID отправляемого стикера.
7. Если требует API, добавьте дополнительные заголовки запроса в выпадающем меню компонента. Не удаляйте заголовки по умолчанию.
8. Задайте Имя переменной для тела ответа, если нужно записать ответ от сервера не в last_request, куда ответ приходит по умолчанию.
9. Задайте Имя переменной для кода ответа, если нужно записать ответ от сервера не в last_request_status_code, куда ответ приходит по умолчанию.
10. Задайте Имя переменной для заголовков ответа, если предполагается, что в заголовках придут важные данные. Например: токены авторизации, куки, подпись HMAC или еще что-то, что может потребоваться дальше для использования в боте.
11. Разверните настройки компонента для продолжения.
12. Отметьте галочками, какие статусы ответов будут считаться успешными, а какие — нет.
13. Для использования данных для авторизации по http basic authentication отметьте галочкой Использовать HTTP-авторизацию.
14. Отметьте галочкой Кодировать тело запроса, если нужно передать параметры по стандарту Юникод.
15. Отметьте галочкой Пропустить проверку HTTPS-сертификата, если у вас возникли проблемы с валидностью сертификата. Бот продолжит работу, но мы рекомендуем исправлять проблемы с сертификатом как можно быстрее.
Если все сделано верно, то при исполнении Запроса, в бот придет стикер.
Все шаги по созданию запроса для отправки стикера от бота вы можете посмотреть в видеоуроке:
Отправка запроса в GPT с помощью POST-запроса
Обратимся к GPT с помощью POST запроса. Ответ от нейросети выведем в боте.
Обязательные параметры:
- model — языковая модель, на котором нам ответит GPT, рекомендуем использовать text-davinci-003
- prompt — текст, который отправиться в GPT. Текст можно заранее записать в переменную и вывести в теле запроса
- max_tokens — максимальное количество символов в ответе от gpt. Значение может быть от 16 до 4000
Создадим POST-запрос к GPT в конструкторе:
1. Добавьте компонент Запрос на экран.
2. Выберите Метод запроса — POST.
3. Укажите URL запроса.
Путь запроса (URL) будет иметь такой вид:
https://api.openai.com/v1/completions
4. Укажите Экран, который исполнится при удачном выполнении запроса.
5. Укажите Экран, который выполнится при ошибке запроса.
6. Добавьте Тело запроса. Поддерживается тело только в формате JSON:
{ "model": "text-davinci-003", "prompt": "{{prompt}}", "max_tokens": 400 }
7. Добавьте дополнительный заголовок запроса:
Ключ: Authorization Значение: Bearer 12345xQWERTY, где 12345xQWERTY — ваш токен, который вы получили в OPEN AI.
Если доступ из вашей страны заблокирован, воспользуйтесь VPN.
Получить токен можно так:
Не удаляйте заголовки по умолчанию.
8. Задайте Имя переменной для тела ответа, если нужно записать ответ от сервера не в last_request, куда ответ приходит по умолчанию.
9. Чтобы ответ от GPT, приходил сразу в бот, добавьте сообщение, где будет выводиться переменная с ответом. Если вы не меняли переменную для ответа по умолчанию, добавьте такой шаблон:
{{last_request.choices.[0].text}}
10. После ответа, можно добавить Перемотку на тот же самый экран, чтобы бы не перезапускать сценарий для нового обращения к GPT.
Обработка ответа — объект
Для примера мы будем использовать ресурс https://www.cbr-xml-daily.ru.
В нём мы выбираем запрос в формате JSON:
https://www.cbr-xml-daily.ru/daily_json.js
Открываем его как обычную ссылку в браузере и получаем ответ в JSON-формате.
Чтобы ответ был удобным для чтения, поставьте расширение на браузер. Для Google Chrome это JSON Formatter.
Например, мы хотим получить стоимость 1 белорусского рубля. Находим часть, где выводится значение BYN и составляем переменную.
Ответ на запрос находится в объекте {{last_request}}.
Чтобы вывести переменную внутри текста, вводим её внутри фигурных скобок. Для этого делаем запрос и выводим полученный ответ в тексте.
В начало ↑
В этой статье я расскажу базовые сведения, которые помогут вам понять, как создать Telegram бота и взаимодействовать с ним без использования сторонних библиотек.
Что такое Telegram Bot? Официальный сайт даёт такое определение:
Боты — это сторонние приложения, которые работают внутри Telegram. Пользователи могут взаимодействовать с ботами, отправляя им сообщения, команды и встроенные запросы. Вы управляете своими ботами, используя HTTPS-запросы к Telegram Bot API.
Для того, чтобы создать простейшего бота не нужно ничего, кроме самого Telegram. Пользователи смогут отправлять вашему боту сообщения через Telegram-клиента (мессенджер) или через API. А для того, чтобы взаимодействовать со своим ботом как владелец, не нужно ничего, кроме браузера (или другой программы, которая будет отправлять HTTPS-запросы). Но это будет самый простейший бот и простейшее взаимодествие. Чтобы научить ваш бот сложным вещам, чтобы автоматизировать получение и обработку сообщений, придётся немного покодить. Но это очень просто и можно использовать любой язык программирования, который вы знаете. Я покажу пример на JavaScript, вы легко его можете адаптировать под тот язык, который знаете.
Создание (регистрация) Telegram-бота.
По сути, боты Telegram — это специальные аккаунты, для настройки которых не требуется дополнительный номер телефона. Вам нужно зарегистрировать (создать) бота, а потом пользователи смогут отправлять ему сообщения или команды, а он сможет им отвечать.
За регистрацию и управление ботами отвечает другой бот — BotFather. Это официальный бот от разработчиков Telegram. Сперва нужно найти его в Telegram и сообщить ему, что вы хотите зарегистрировтаь нового бота. После ответов на серию простейших вопросов вы получите Token, используя который сможете взаимодествовать со своим ботом через Bot API, как владелец. А пользователи смогут отправлять ему сообщения и команды через Telegram или API.
Найдите в своём мессенджере BotFather (https://t.me/botfather), так же как любого другого пользователя и отправте ему команду /newbot
. Вас попросят сообщить название и имя вашего нового бота, а взамен дадут Token.
Держите полученный Token в секрете. Любой, кто его знает, может использовать его для управления вашим ботом.
С этого момента вы можете начинать взаимодействовать с вашим ботом. Например, используя метод getMe, вы можете отправить GET запрос в Telegram Bot API и получить информацию о вашем боте. Вставьте в адресную строку вашего браузера следующую ссылку и перейдите по ней.
https://api.telegram.org/bot{TOKEN}/{METHOD_NAME}
где:
- TOKEN — token, который вы получили от BotFather
- METHOD_NAME — метод Bot API, которую вы хотит использовать
Например
https://api.telegram.org/bot0123456789:AAFYNwvkDdfgHJ3jhgrs3cUH4oSOEAVSZp8/getMe
Если вы сделали всё правильно, то в ответ вы получите JSON объект примерно такого вида:
{
"ok": true,
"result": {
"id": 0123456789,
"is_bot": true,
"first_name": "DanshinMS - тестовый бот",
"username": "DanshinMS_bot",
"can_join_groups": true,
"can_read_all_group_messages": false,
"supports_inline_queries": false
}
}
id
— это идентификатор вашего бота. Любой пользователь, чат или канал Telegram имеет подобный ID. Именно этот ID используется для взаимедойствия бота с пользователем.
значение true
в параметре is_bot
говорит, что тип этого пользователя bot
.
first_name
и username
говорят сами за себя. Это то, что вы сообщали BotFather при регистрации бота.
"can_join_groups": true
— говорит о том, что вашего бота можно добавлять в группы.
"can_read_all_group_messages": false
— говорит о том, что ваш бот не может читать сообщения пользователей в группе. Вы можете изменить это значение на True
и тогда бот сможет читать, что пишут другие пользователи.
"supports_inline_queries": false
— говорит о том, что вашему боту нельзя отправлять команды, используя символ @
. Вы можете изменить это значение на True
и тогда пользователи смогу это делать.
Чтение сообщений
Как только бот зарегистрирован, ему можно отправлять сообщения. Находите его в Telegram, нажимаете Start и отправляете сообщение.
Все сообщения попадают на сервера Telegram и хранятся там не более 24 часов. Чтобы получить список сообщений, есть два способа.
- Вызвать метод
getUpdates
, так же, как мы это делали с методомgetMe
. - Настроить webHook. Про этот способ я расскажу чуть позже.
Давайте воспользуемся первым способом, вызовем метод getUpdates.
https://api.telegram.org/bot0123456789:AAFYNwvkDdfgHJ3jhgrs3cUH4oSOEAVSZp8/getUpdates
Метод вернёт объект, похожий на этот:
{
"ok": true,
"result": [
{
"update_id": 206369231,
"message": {
"message_id": 1,
"from": {
"id": 0123456789,
"is_bot": false,
"first_name": "Mikhail",
"last_name": "Danshin",
"username": "mdanshin",
"language_code": "en"
},
"chat": {
"id": 0123456789,
"first_name": "Mikhail",
"last_name": "Danshin",
"username": "mdanshin",
"type": "private"
},
"date": 0123456789,
"text": "/start",
"entities": [
{
"offset": 0,
"length": 6,
"type": "bot_command"
}
]
}
},
{
"update_id": 206369232,
"message": {
"message_id": 2,
"from": {
"id": 0123456789,
"is_bot": false,
"first_name": "Mikhail",
"last_name": "Danshin",
"username": "mdanshin",
"language_code": "en"
},
"chat": {
"id": 0123456789,
"first_name": "Mikhail",
"last_name": "Danshin",
"username": "mdanshin",
"type": "private"
},
"date": 1661089150,
"text": "Hello, my new bot! How are you?"
}
}
]
}
Поле "text"
будет содержать тект сообщения. Теперь эти сообщения можно читать и как-то обрабатывать. А позже я покажу, как удалить уже прочитанные сообщения.
Очевидно, что получать обновления таким способом не очень удобно. Нужно каждый раз отправлять запрос к серверу телеграм и делать это нужно с очень высокой частотой. Лучше воспользоваться технологией webHook. В этом случае, при получении каких-то обновлений, Telegram сам будет их отправлять туда, куда мы скажем. С помощью метода setWebhook
мы можем передать url
и тогда каждый раз, как на сервер Telegram будут приходить какие-то изменения для нашего бота, Telegram сам будет их отправлять по указанному нами url
. Естественно, что в этом случае нужно, чтобы кто-то прослушивал этот URL. Это может быть наш самописный сервис, работающий на каком-нибудь хостинге. В следующей статье я покажу как это реализовать на бесплатном хостинге. Сначала я думал взять для этого Heroku, но т.к. они отказываются от бесплатных тарифных планов, то мне ещё предстоит подобрать подходящего хостера. Так что подписывайтесь на новости или присоединяйтесь к группе в Telegram.
Отправка сообщений от имени бота
Самый простой сценарий использования бота, который не требует никакого программирования и специальных программ — это отправка сообщений от имени бота.
Например, вы моежет добавить бота в группу и используя Telegram Bot API отправлять от его имени сообщения в эту группу. Для этого нужно воспользоваться методом sendMessage
. Вот как это делается.
В адресной строке вашего браузера, точно так же как вы это делали с методом getMe
, вставьте URL следующего вида:
https://api.telegram.org/bot{TOKEN}>/sendMessage?chat_id={CHAT_ID}&text={TEXT}
где:
* TOKEN - token, который вы получили от BotFather.
* CHAT_ID - ID пользователя, группы или канала, которому вы хотите отправить сообщение (как узнать ID см. ниже, в этой статье).
* TEXT - Текст сообщения, который вы хотите отправить.
Например:
https://api.telegram.org/bot0123456789:AAFYNwvkDdfgHJ3jhgrs3cUH4oSOEAVSZp8/sendMessage?chat_id=0123456789&text=Hello World
Одним из практических примеров использования этого метода может быть система мониторинга или любая система, где требуется оповещение и которая может отправлять HTTPS запрос или выполнять скрипт. Например, при возникновении события, система мониторинга запускает Powershell скрип, который, в свою очередь, отправляет сообщение от имени бота. Делается это очень просто:
Invoke-WebRequest https://api.telegram.org/bot123456789:AAFYNwvkDdfgHJ3jhgrs3cUH4oSOEAVSZp8/sendMessage?chat_id=0123456789&text=Alert Message
Как узнать ID?
Чтобы отправить кому-то сообщение, вам нужно знать его ID. ID так же есть и у чатов и у каналов. И их ID тоже нужно знать, чтобы иметь возможность отправлять им сообщения.
Один из способов узнать ID чата — добавить бота в чат и вызвать метод getUpdates
:
https://api.telegram.org/botTOKEN/getUpdates
например:
https://api.telegram.org/bot0123456789:AAFYNwvkDdfgHJ3jhgrs3cUH4oSOEAVSZp8/getUpdates
Вы получите список накопившихся обновлений и скорее всего последним обвнолвением будет именно добавление в группу. Оно будет иметь примерно такой вид:
{
"update_id": 31405408,
"message": {
"message_id": 7,
"from": {
"id": 123456789,
"is_bot": false,
"first_name": "Mikhail",
"last_name": "Danshin",
"username": "mdanshin",
"language_code": "en"
},
"chat": {
"id": -0123456789012,
"title": "Моя тестовая группа",
"type": "supergroup"
},
"date": 123456789,
"new_chat_participant": {
"id": 123456789,
"is_bot": true,
"first_name": "DanshinMS - тестовый бот",
"username": "DanshinMS_bot"
},
"new_chat_member": {
"id": 123456789,
"is_bot": true,
"first_name": "DanshinMS - тестовый бот",
"username": "DanshinMS_bot"
},
"new_chat_members": [
{
"id": 123456789,
"is_bot": true,
"first_name": "DanshinMS - тестовый бот",
"username": "DanshinMS_bot"
}
]
}
}
Обратите внимание на объект chat
. Его свойство "id"
содержит отрицательное значение. Это и есть ID чата.
"chat": {
"id": -0123456789012,
"title": "Моя тестовая группа",
"type": "supergroup"
}
Когда пользователь будет отправлять сообщение боту, то эти сообщения тоже можно будет получить через getUpdates
и в них тоже будут содержаться ID пользователей.
Удаление прочитанных сообщений
Каждый раз вызывая метод getUpdates
вы будете получать все сообщения за последние 24 часа. Чтобы удалить уже обработанные, в методе getUpdates
нужно передать offset
с номером обновления + 1.
Допустим вы получили от сервера объект.
{ ok: true, result: [
{
update_id: 31405473,
message: [Object]
}
]
}
Вы обработали его и хотите удалить, чтобы при следующем обновлении он не приходил. Обратите внимание на поле update_id
. Передайте в методе getUpdates
этот id + 1 в качестве значения параметра offset
и вы больше не увидите ни одного обновления со значением меньшем, чем то, которое вы передали.
Вот как это можно сделать:
https://api.telegram.org/bot0123456789:AAFYNwvkDdfgHJ3jhgrs3cUH4oSOEAVSZp8?offset=31405474
Ниже пример кода на JavaScript + Node.js. Эту функцию легко адаптировать под любые другие методы из Telegram Bot API и даже написать свой фреймворк.
const https = require("https");
const apiToken = "0123456789:AAFYNwvkDdfgHJ3jhgrs3cUH4oSOEAVSZp8"
function getUpdates(offset) {
const options = {
hostname: `api.telegram.org`,
path: `/bot${apiToken}/getUpdates`,
method: "POST",
headers: { 'content-type': 'application/json' },
}
const bodyContent = JSON.stringify({
"offset": `${offset}`
})
const req = https.request(options, (response) => {
response.on('data', (d) => {
const data = JSON.parse(d)
console.log(data);
});
});
req.write(bodyContent);
req.end();
}
getUpdates("123");
Теперь, имея представление о том, как создавать и взаимодействовать с ботами, используя любой язык программирования, вы сможете без труда автоматизировать рутиные операции — получение новых сообщений и их обработку. Посмотрите все методы Telegram Bot API. Их не так много и с ними можно легко разобраться.
Периодически разработчики Telegram делают что-то новое. А сообщество уже давно выпустило фреймворки, которые облегчают жизнь. Некоторые из них стали очень популярны:
Node JS
Node.js Telegram Bot API
telegraf.js
Python
Python Telegram Bot
C#
.NET Client for Telegram Bot API
Читайте статью Взаимодействие с Telegram Bot API через Postman. В ней вы узнаете о том, как взаимодействовать с Telegram Bot API при помощи мощного инструмента разработчиков Postman.