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Заменяет клавиатуру бота на стандартную клавиатуру Telegramhide_keyboard
selective
InlineKeyboardMarkupВстроенная клавиатура, появляющаяся под сообщениемinline_keyboard
InlineKeyboardButtonОдна кнопка на встроенной клавиатуреtext
url
callback_data
switch_inline_query
switch_inline_query_current_chat
callback_game
CallbackQueryВходящий запрос обратной связи для встроенной кнопки с заданным параметром callback_dataid
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 не будет опубликован.
  1. Яна

    Здравствуйте! Скажите пожалуйста, как сделать так чтобы при публикации ссылки на https://bitoday.info/novosti/oborudovanie-dlja-majninga-budut-deklarirovat-v-rf в канале подтягивалась кнопка «Просмотреть» . Пример http://joxi.ru/n2Y8YqlFoxVxDm . Сейчас при публикации даже предпросмотр не подтягивается. Спасибо.