Развитие Телеграмм во многом определяется наличием большого числа ботов – небольших сервисных программ-роботов. Их может создать каждый пользователь, знакомый с программированием на среднем уровне. Telegram API Bot – это программный интерфейс, позволяющий программировать собственного бота.
API включает в себя объекты и команды, предназначенные для установки поведения бота Telegram. Используя интерфейс, вы можете создавать собственные программные коды, которые при запуске в Telegram начинают работать как боты.
Элементы управления
В Бот Телеграмм API все элементы управления представляют собой объекты, которые представлены в JSON, то есть в виде строки, заданной по определенным правилам. Это позволяет производить обмен данными по сети максимально быстро и наименее затратно, так как передается не программный код, а набор пар «ключ:значение» в текстовом виде. В таблице приведены все типы API. Большая часть объектов предназначена для создания команд бота. Ключи дадут более расширенное представление о возможностях объекта.
Название | Описание | Ключи |
---|---|---|
User | Пользователь в Телеграмм | id first_name last_name username |
Chat | Чат | id type title username first_name last_name all_members_are_administrators |
Message | Сообщение | message_id from date chat forward_from forward_date reply_to_message text entities audio document photo sticker video voice caption contact location venue new_chat_member left_chat_member new_chat_title new_chat_photo delete_chat_photo group_chat_created supergroup_chat_created channel_chat_created migrate_to_chat_id migrate_from_chat_id pinned_message |
MessageEntity | Отдельная сущность в текстовом сообщении (хештег, ссылка и пр.) | type length url offset |
PhotoSize | Изображение заданного размера или превью фото, файла или стикера | file_id width height file_size |
Audio | Аудиозапись | file_id duration performer title mime_type file_size |
Document | Любой файл, не являющийся изображением, аудиозаписью или голосовой записью | file_id thumb file_name mime_type file_size |
Sticker | Стикер | file_id width height thumb file_size |
Video | Видеозапись | file_id width height duration thumb mime_type file_size |
Voice | Голосовое сообщение | file_id duration mime_type file_size |
Contact | Телефонный контакт | phone_number first_name last_name user_id |
Location | Точка на карте | longitude latitude |
Venue | Объект на карте | location title address foursquare_id |
UserProfilePhotos | Фото профиля пользователя | total_count photos |
File | Готовый к загрузке файл | file_id file_size file_path |
ReplyKeyboardMarkup | Клавиатура с возможностью ответа | keyboard resize_keyboard one_time_keyboard selective |
KeyboardButton | Кнопка клавиатуры для ответа | text request_contact request_location |
ReplyKeyboardHide | Заменяет клавиатуру бота на стандартную клавиатуру Telegram | hide_keyboard selective |
InlineKeyboardMarkup | Встроенная клавиатура, появляющаяся под сообщением | inline_keyboard |
InlineKeyboardButton | Одна кнопка на встроенной клавиатуре | text url callback_data switch_inline_query switch_inline_query_current_chat callback_game |
CallbackQuery | Входящий запрос обратной связи для встроенной кнопки с заданным параметром callback_data | id from message inline_message_id data |
ForceReply | Эмулирует действия пользователя: выбор сообщения и нажатия кнопки «Ответить» | force_reply selective |
ResponseParameters | Сообщает, почему запрос не выполнился успешно | migrate_to_chat_id retry_after |
Результирующие строки, которые присылает мессенджер, представлены в виде тех же объектов API.
Обмен сообщениями происходит в виде запросов. В следующей таблице приведены примеры некоторых из них.
Метод | Действие |
---|---|
getMe | Позволяет получить информацию о пользователе |
sendMessage | Отправляет сообщение |
sendPhoto | Отправляет фото |
sendAudio | Отправляет аудио |
sendDocument | Отправляет документ |
sendVideo | Отправляет видео |
sendContact | Отправляет контакт |
getUpdates | Получает обновления из чата |
Все методы (а их достаточно много) делятся на группы:
- Получение обновлений и информации.
- Работа в чате.
- Отправка различных элементов.
- Работа со стикерами.
- Обновление сообщений.
- Режим inline.
- Платежный функционал.
- Для игр.
Полной документации Telegram Bot API на русском пока не существует. Однако стандартный перевод в браузере Google Chrome прекрасно справляется с задачей.
Языки программирования
Telegram API поддерживается множеством языков программирования. Это дает возможность выбора создателю.
Любители JavaScript могут использовать Node.js Telegram Bot API. Здесь необходимо знание не только языка, но и умение обращаться с этим фреймворком, превратившим клиентский язык в полноценный серверный интерфейс.
Одним из самых популярных для написания ботов с использованием Telegram Bot API является PHP. Этот язык изначально был предназначен для создания серверных web-приложений. Он отличается простотой, логичностью и специализированностью именно для web-среды.
Часто используется Telegram Bot API в Python. Этот язык отличается минимализмом и достаточно прост в изучении. Он очень популярен за счет своей производительности.
Классикой является применение Telegram Bot API в С++. Язык нельзя назвать простым, но он является базой, на которой были созданы все остальные вышеперечисленные ЯП. Соответственно в нем не заложена определенная специализация. Инструменты позволяют создавать любые приложения.
Пример использования
Кроме объектов API имеет набор методов, которые позволяют отправлять сообщения, файл, фото стикеры, редактировать и многое другое. Все эти команды можно найти в описании API на официальном сайте.
Для создания в Telegram существует специальный сервис @Botfather. Зайдите в него и увидите набор команд, с помощью которых создается новый робот. Для начала наберите команду /newbot. Далее последовательно введите имя для пользователей и название. Последнее обязательно заканчивается на «bot». После того, как вам пришлют токен (идентификатор), новый бот создан. Авторизация осуществляется через токен. Чтобы запустить программу в Телеграмм, найдите свое детище и нажмите кнопку «Старт». Это запустит преопределённую команду /start. Также для каждого робота зарезервированы команды /settings и /help.
Все запросы имеют вид:
https://api.telegram.org/bot<token>/КОМАНДА
Всего существует 4 способа подачи запроса:
- Запрос в URL
- application/x-www-form-urlencoded
- application/json (не подходит для загрузки файлов)
- multipart/form-data (для загрузки файлов)
Доступны как GET, так и POST запросы.
Самый простой способ попробовать команды API – адресная строка в браузере. Зайдите в свой бот в web-версии или с мобильного устройства. Затем в браузере наберите команду:
https://api.telegram.org/bot507226896:AAGT_fsEfg1milOkqbNp-VolQDJ0tGjaPvD7/getUpdates
В результате в окне появится JSON-строка
{"ok":true,"result":[{"update_id":231886689,
"message":{"message_id":3,"from":{"id":391911270,"is_bot":false,"first_name":"Irina","last_name":"12345678","language_code":"ru"},"chat":{"id":391911270,"first_name":"Irina","last_name":"12345678","type":"private"},"date":1514900431,"text":"\u044b\u0443\u0442\u0430\u043b\u043e\u0430\u043c\u0440"}}]}
Параметр chat»:{«id – это идентификатор чата. Затем наберите строку:
https://api.telegram.org/ bot507226896:AAGT_fsEfg1milOkqbNp-VolQDJ0tGjaPvD7/sendMessage?chat_id=391911270&text=Hello
В браузере появится строка
{"ok":true,"result":{"message_id":4,"from":{"id":507226896,"is_bot":true,"first_name":"Anna","username":"Annatuola_bot"},"chat":{"id":391911270,"first_name":"Irina","last_name":"12345678","type":"private"},"date":1514900499,"text":"Hello"}}
А в чате Телеграмм вы увидите приветствие от созданного робота.
Как видите, создать с нуля новый элемент для Телеграмм не сложно. Трудности начинаются в момент программирования, но об этом расскажем в других статьях.