Telegram API Bot

Развитие Телеграмм во многом определяется наличием большого числа ботов – небольших сервисных программ-роботов. Их может создать каждый пользователь, знакомый с программированием на среднем уровне. 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 Получает обновления из чата

Все методы (а их достаточно много) делятся на группы:

  1. Получение обновлений и информации.
  2. Работа в чате.
  3. Отправка различных элементов.
  4. Работа со стикерами.
  5. Обновление сообщений.
  6. Режим inline.
  7. Платежный функционал.
  8. Для игр.

Полной документации 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 способа подачи запроса:

  1. Запрос в URL
  2. application/x-www-form-urlencoded
  3. application/json (не подходит для загрузки файлов)
  4. 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"}}

А в чате Телеграмм вы увидите приветствие от созданного робота.

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

Как пользоваться ботами в Телеграмм
Разработчики Телеграмм: купить бота
Задать вопрос
Ваш e-mail не будет опубликован.