telegram bot что это такое
Боты: информация для разработчиков
Боты — специальные аккаунты в Telegram, созданные для того, чтобы автоматически обрабатывать и отправлять сообщения. Пользователи могут взаимодействовать с ботами при помощи сообщений, отправляемых через обычные или групповые чаты. Логика бота контролируется при помощи HTTPS запросов к нашему API для ботов.
Общие сведения
Что могут делать боты?
Вот несколько примеров использования ботов:
Как работают боты?
Как уже было сказано ранее, роботы — особые аккаунты, которые не требуют номера телефона при создании. По сути, эти аккаунты играют роль интерфейса к вашему сервису, который работает на удалённом сервере.
Самое интересное в роботах это то, что для их создания вам не нужно изучать низкоуровневые методы работы с MTProto и шифрованием — общение с роботом организовано при помощи обычного HTTPS интерфейса с упрощёнными методами Telegram API. Мы назвали его Bot API.
Рекомендуем также ознакомиться с подробным описанием Bot API.
Как создать бота?
Для этого есть. Бот. Просто напишите пользователю @BotFather и следуйте его инструкциям. Как только вы создали бота и получили свой ключ (токен) авторизации, переходите в раздел документации Bot API, чтобы начать настраивать вашего бота.
Чем бот отличается от обычного аккаунта?
Суперспособности
У роботов Telegram есть много уникальных возможностей — например, кастомизированные клавиатуры, дополнительные интерфейсы для команд по умолчанию, внешнее связывание и специальные режимы приватности для групп.
Инлайн-режим
Пользователи могут общаться с вашим ботом напрямую из поля ввода сообщения — из любого чата или группы. Для этого нужно всего лишь набрать имя пользователя вашего бота и запрос для поиска. Получив запрос, бот может возвратить какие-либо результаты. Как только пользователь нажмёт на один из них, он сразу же отправится в чат. Таким образом можно запрашивать контент от бота в чатах, группах или каналах.
С помощью ботов пользователи могут играть в HTML5-игры в группах или приватных чатах. Игровая платформа Telegram поможет составить таблицу рекордов и оповещать пользователей об изменении рейтинга.
Под капотом у игр — HTML5, поэтому вы можете создавать игры любой сложности. На данный момент командой Telegram созданы несколько демо-игр:
Клавиатуры
Одна из самых необычных возможностей Bot API — кастомизированные клавиатуры. При передаче сервером ответа есть возможность передать команду на отображение специальной клавиатуры с предустановленными вариантами ответа (см. ReplyKeyboardMarkup). Клиент Telegram, получив сообщение, отобразит пользователю вашу клавиатуру. Нажатие на клавишу сразу же отправит на сервер соответствующую команду. Таким образом можно значительно упростить взаимодействие робота с пользователем. На данный момент для отображения на клавише могут использоваться эмодзи и текст. Вот несколько примеров таких клавиатур:
За более подробной информацией обращайтесь к описанию метода sendMessage.
Команды
Команды представляют собой более гибкий способ общения с ботом. Рекомендуется следующий синтаксис:
Команда должна начинаться с символа косой черты «/» и не может быть длиннее 32 символов. Команды могут состоять из букв латинского алфавита, цифр и подчёркивания. Несколько примеров:
Сообщения, начинающиеся с косой черты, будут всегда доставляться боту (точно также, как и при ответе на его сообщения и на @упоминания бота в чате). Приложения Telegram будут:
Если в группе есть несколько ботов, вы можете дописать после команды имя бота, чтобы избежать коллизий в общих командах:
Это происходит автоматически, если вы выбираете команду из списка доступных.
Глобальные команды
Чтобы пользователям было проще работать с ботами, мы просим всех разработчиков реализовывать поддержку нескольких простых команд. В интерфейсе приложений Telegram будут ярлыки (быстрые ссылки) для этих команд.
При попытке начать общение с роботом, пользователь увидит кнопку СТАРТ. На странице профиля бота также будут доступны ссылки Помощь и Настройки.
Режим приватности
Ботов часто добавляют в группы, чтобы получать различную информацию — новости, уведомления и т.д. Однако, при добавлении бота вы наверняка спрашивали себя: «А что если этот маленький засранец пересылает всю групповую переписку куда-то “налево”?» Именно поэтому у роботов есть режимы приватности.
Робот с включенным режимом приватности не будет получать всех сообщений, а только сообщения, удовлетворяющие этим условиям:
Это хорошо со всех сторон: во первых, некоторые люди будут спать спокойно (в своих шапочках из фольги), не опасаясь, что их будут прослушивать. Во-вторых, режим приватности избавляет разработчиков от необходимости обрабатывать сотни ненужных сообщений из групповых чатов.
Мы рекомендуем отключать режим приватности только в случаях крайней необходимости. В подавляющем большинстве случаев, запроса принудительного ответа на сообщение бота будет достаточно.
Внешнее связывание
Боты имеют механизм внешнего связывания, которые позволяет передать дополнительные параметры при запуске. Например, для передачи авторизационного токена пользователя, чтобы соединить его аккаунт с каким-либо внешним сервисом.
Переход по ссылке с параметром start начнет чат с ботом, при этом в поле ввода текста будет отображаться кнопка СТАРТ. При переходе по ссылке с параметром startgroup пользователю будет предложено добавить бота в одну из доступных групп. Как только пользователь подтвердит своё действие (нажмёт на кнопку СТАРТ или выберет группу), бот получит сообщение следующего формата:
Пример реализации внешнего связывания
BotFather
BotFather — один бот, чтобы править всеми. При помощи него меняются настройки у существующих ботов и создаются новые.
Создание бота
Имя (name) будет отображаться в контактах и чатах.
Username — короткое имя на латинице, которое используется для упоминаний бота и в ссылках на профиль в telegram.me. Username должен состоять из букв латинского алфавита, подчёркиваний и цифр и быть длиной от 5 до 32 символов. Также имя пользователя обязательно должно заканчиваться на «bot», например: «tetris_bot» или «TetrisBot».
Создание токена
Настройки
Пожалуйста, имейте в виду, что для применения настроек на сервере, возможно, потребуется некоторое время.
Сайт про Telegram на русском (неофициальный).
Здесь собраны приложения на базе MTProto, переведена некоторая документация с официального сайта, а также работает Webogram.
Боты в Телеграм: что это такое и как они работают
Здравствуйте, дорогие читатели. У меня для вас отличная новость. Наконец-то дошли руки рассказать про то, что такое боты в Телеграм. Расскажу, зачем они нужны, как их искать и как правильно использовать. Как всегда, в описании будет минимум воды и максимум пользы.
Бот – что это такое и что он умеет
Робот-помощник, готовый выполнить любое рутинное занятие, или специальный программный код, выполняющий определённые команды пользователя.
Вся переписка с ним ведётся через обычный чат. Вы даёте боту команды, которые он готов выполнять круглосуточно. Его основная задача ответить на вопрос пользователя, согласно своей программе. Боты помогают, экономят кучу времени и управлять ими очень просто.
На сегодня роботы Телеграм могут:
Другими словами, они, как посредники между человеком и многочисленными веб-службами. Их большой плюс – это общая оболочка, теперь внутри Телеграм находится вся информация, которую люди привыкли искать через Яндекс и Гугл.
На мой взгляд, несомненный плюс в экономии времени за счёт уменьшения количества приложений в гаджете. Люди всегда хотят получать всё, что им нужно, в одном окне. Теперь нет необходимости в установке лишних приложений для погоды, новостей и т. п., что было особенно критично для маломощного смартфона. Теперь всё это заменяет Телеграм с возможностью установки необходимых роботов.
Далее разберём, как они работают.
Принцип очень прост. Вы находите бота, пишете ему текстовое сообщение (команду) и через доли секунды получаете ответ.
Теперь о том, как найти бота в Телеграме.
Ищем своего бота
Поиск бота ничем не отличается от поиска каналов в Телеграмм. Помните, о них я писал немногим раньше. Основные варианты поиска:
Выборки чаще всего субъективны, следует внимательно прочитать описание. Кстати, я прямо сейчас готовлю большую подборку, разбитую по категориям. Не пропустите.
Для этого нужно знать точное имя и ввести его в строку поиска. Имя обязательно заканчивается на bot и начинается с собачки – @.
Спросите друга, который любит разбираться в современных технологиях. Друзья плохого не посоветуют.
Как ими пользоваться
Давайте на живых примерах рассмотрим варианты использования.
Общая схема: найти бота – нажать start/начать – ввести команду – получить ответ.
Думаю всем уже понятно, что бот — это программа, которая понимает определённые фразы. Они запускают цепочку действий, итогом является решённая задача.
Скриншоты будут из версии для ПК. В мобильной и онлайн-версиях всё то же самое.
Боты с готовым меню
В большинстве случаев бот имеет собственное меню. Вот пример Яндекс-бота.
Вот ещё вариант меню у бота популярного сайта AdMe.
Скрытое меню
У некоторых роботов меню скрыто. Чтобы его вызвать, необходимо нажать «/» и появится список команд.
Нужно знать команды
В статье про русификацию Телеграм мы знакомились с роботом Антоном, так вот, он не имеет понятного меню. Чтобы узнать, какие команды он понимает, необходимо отправиться в поиск по интернету.
Универсальные команды
Их понимает большинство онлайн-помощников:
Иногда боты понимают команды на русском, можно просто догадаться по смыслу. Вот образец – знаменитый робот Антон подрабатывает ещё и в Гидрометцентре. Если его спросить «Погода Воронеж», он тут же сообщит прогноз.
Если бот молчит
Иногда можно найти бота, который не отвечает. Что ни спроси, он будет молчать, как партизан. В чём причина?
Сам столкнулся с проблемой – не захотел работать популярный @nationalgeographic_bot, он должен показывать лучшие фотки знаменитого журнала. Но, как я ни старался, команду подобрать не смог. Может у вас получится? Сообщите, пожалуйста.
На этом заканчиваю. Если есть вопросы, напишите их, пожалуйста, в комментариях. Подписывайтесь на обновления, чтобы не пропускать выход новых статей на блоге.
Инструкция: Как создавать ботов в Telegram
24 июня разработчики Telegram открыли платформу для создания ботов. Новость кого-то обошла стороной Хабр, однако многие уже начали разрабатывать викторины. При этом мало где указаны хоть какие-то примеры работающих ботов.
Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы к Telegram Bot API. Причем API довольное простое — бот обращается на определенный URL с параметрами, а Telegram отвечает JSON объектом.
Рассмотрим API на примере создания тривиального бота:
1. Регистрация
Прежде чем начинать разработку, бота необходимо зарегистрировать и получить его уникальный id, являющийся одновременно и токеном. Для этого в Telegram существует специальный бот — @BotFather.
Пишем ему /start и получаем список всех его команд.
Первая и главная — /newbot — отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя — оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.
Для начала работы этого уже достаточно. Особо педантичные могут уже здесь присвоить боту аватар, описание и приветственное сообщение.
Не забудьте проверить полученный токен с помощью ссылки /getMe»>api.telegram.org/bot /getMe, говорят, не всегда работает с первого раза.
2. Программирование
Создавать бота буду на Python3, однако благодаря адекватности этого языка алгоритмы легко переносятся на любой другой.
Telegram позволяет не делать выгрузку сообщений вручную, а поставить webHook, и тогда они сами будут присылать каждое сообщение. Для Python, чтобы не заморачиваться с cgi и потоками, удобно использовать какой-нибудь реактор, поэтому я для реализации выбрал tornado.web. (для GAE удобно использовать связку Python2+Flask)
Здесь мы при запуске бота устанавливаем вебхук на наш адрес и отлавливаем сигнал выхода, чтобы вернуть поведение с ручной выгрузкой событий.
Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.
Здесь CMD — словарь доступных команд, а send_reply — функция отправки ответа, которая на вход принимает уже сформированный объект Message.
Собственно, её код довольно прост:
Теперь, когда вся логика бота описана можно начать придумывать ему команды.
3. Команды
Перво-наперво, необходимо соблюсти соглашение Telegram и научить бота двум командам: /start и /help:
Структура message[‘from’] — это объект типа User, она предоставляет боту информацию как id пользователя, так и его имя. Для ответов же полезнее использовать message[‘chat’][‘id’] — в случае личного общения там будет User, а в случае чата — id чата. В противном случае можно получить ситуацию, когда пользователь пишет в чат, а бот отвечает в личку.
Команда /start без параметров предназначена для вывода информации о боте, а с параметрами — для идентификации. Полезно её использовать для действий, требующих авторизации.
После этого можно добавить какую-нибудь свою команду, например, /base64:
Для пользователей мобильного Telegram, будет полезно сказать @BotFather, какие команды принимает наш бот:
I: /setcommands
BotFather : Choose a bot to change the list of commands.
I: @******_bot
BotFather: OK. Send me a list of commands for your bot. Please use this format:
C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.
4. Свобода
Как можно было заметить, Telegram присылает сообщение целиком, а не разбитое, и ограничение на то, что команды начинаются со слеша — только для удобства мобильных пользователей. Благодаря этому можно научить бота немного говорить по-человечески.
UPD: Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/ ) (https://core.telegram.org/bots#privacy-mode)
Чтобы бот получал все сообщения в группах пишем @BotFather команду /setprivacy и выключаем приватность.
Для начала в Handler добавляем обработчик:
А потом в список команд добавляем псевдо-речь:
Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map — удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.
5. Не текст.
Боты, как и любой нормальный пользователь Telegram, могут не только писать сообщения, но и делиться картинками, музыкой, стикерами.
Для примера расширим словарь RESPONSES:
И будем отлавливать текст :
Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:
И все, теперь бот будет время от времени присылать стикер вместо времени:
6. Возможности
Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие).
Вспоминая статью про умный дом, могу сказать, что теперь извращений меньше, а работа прозрачнее.
7. Ограничения
К сожалению, на данный момент существует ограничение на использование webHook — он работает только по https и только с валидным сертификатом, что, например для меня пока критично за счет отсутствия поддержки сертифицирующими центрами динамических днс.
К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:
P.S. По пункту 7 нашел удобное решение — размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом.
UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч ‘method’: ‘sendMessage’ (или любой другой метод, используемый ботом).
Боты в Telegram — что это такое, зачем нужны и как они работают?
Здравствуйте, дорогие читатели!
Наверное, вы как и большинство современных людей не раз слышали о Telegram ботах. Но приходили ли Вам в голову мысли о том, как создаются боты, какие функции они выполняют, как делаются и какими бывают? Если да, то эта статья будет для Вас определённо полезной.
Что такое Телеграмм бот?
В этой части я хочу вам рассказать сначала о самих ботах в целом что это такое, а потом уже и о ботах в Telegram. Давайте же не будем ходить вокруг да около и уже приступим.
Что такое боты?
Бот (сокращение от слова «робот») — специально-написанная программа, которая выполняет различные действия по заданной команде или в автоматическом режиме. Функционал ботов огромен и разнообразен, и сейчас они активно распространяются в интернете. Telegram не стал исключением.
А Телеграмм боты?
Боты в Telegram стали появляться после того, как в 2015 году был создан новый Telegram Bot API.
Как уже было написано выше, боты выполняют кучу различных функций: от простого общения с пользователем до просмотра курса валют. В этом и заключается их главное достоинство. Теперь Вам не нужно скачивать кучу приложений, любое действие вы можете совершить, просто найдя нужного бота. А за счёт иллюзии общения с реальным юзером, которая создаётся в чате с ботом, пользование им становится куда приятнее и проще. Помимо всего вышеперечисленного боты также имеют такие достоинства как:
«Но как же найти нужного мне бота?» — спросите Вы. Поговорим об этом далее.
Как искать ботов в Telegram?
Всё гораздо проще, чем Вам кажется. Есть несколько вариантов для поиска нужного Вам бота. Найти бота можно прямо в телеграмме, достаточно ввести интересующее Вас слово и добавить приставку bot, так как имя бота всегда оканчивается на неё. Разберём на примере. Я очень люблю читать, но иногда нужную мне книгу найти очень трудно и, чтобы не ломать себе голову я просто захожу в Телеграмм, вбиваю в поисковой строке «bot книги» и нахожу книжного бота от флибусты — электронной библиотеки. С помощью этого бота я могу найти практически любую книгу в электронном варианте. (См. скриншоты ниже).
В поиске ботов Вам смогут помочь друзья, разбирающиеся в технологиях. Также для поиска ботов можно использовать интернет-подборки, которых в интернет можно найти огромное множество.
Бота нашли, но как им пользоваться? Сейчас разберёмся.
Как работают боты в Телеграмме?
Понять предмет работы бота человеку без специального образования будет достаточно сложно. Но попробуем разобраться.
Схема работы бота
По своей сути бот является посредником между пользователем и специально-написанной программой. Если кратко, то схема работы бота выглядит примерно так:
Команда от пользователя далее Передача ботом команды на сервер далее
Обработка программой на сервере запроса, полученного от бота далее
Ответ боту от сервера далее Передача ответа пользователю
Как пользоваться ботом?
Использовать бота в Телеграмм куда проще, чем понять суть его работы. Для «общения» с ботом не обязательно иметь какие-то супер-способности. Сейчас разберёмся на примере. Для начала находим нужного нам бота (как это сделать, вы уже знаете). Далее Вам нужно нажать /start и ввести команду. Бот даст ответ. (См. скриншоты ниже).
Не забывайте, что бот — это всего лишь посредник между Вами и программой, понимающий определённые команды.
Кроме того, дорогие читали, Вы должны знать, что ботов можно добавлять в группу (кнопка «Добавить в группу»), в который вы состоите, а также поделиться ботом с друзьями (кнопка «Поделиться»).
Также не стоит переживать, если бот Вам не отвечает. Причин может быть несколько: проблема на сервере, неверно-введённая Вами команда, ошибки разработчиков.
Как создать бота в Телеграмме?
Уверена, что у многих из Вас появилось желание создать своего бота. Могу Вас заверить в том, что создать собственного бота по силам каждому из Вас! Давайте разберёмся по порядку.
Бот готов, но для его полноценной работы Вам необходимо перейти к этапу программирования. Это можно сделать с помощью языка программирования «Python». У нас на блоге есть статья про курсы по Python разработке, возможно она вам также будет интересна.
Стоит сказать, что для создания сложных ботов всегда можно обратиться к услугам специалиста, который сделает бота в соответствии с Вашими пожеланиями. Найти такого специалиста можно например на биржах фриланса.
Подборка Telegram ботов
Предлагаю Вашему вниманию мою личную подборку Telegram ботов.
Заключение
Количество Telegram ботов стремительно растёт, но не нужно пугаться, ведь боты действительно полезная для людей вещь, позволяющая экономить время и ресурсы. Вам больше не придётся скачивать кучу приложений для удовлетворения Ваших потребностей — Вам помогут боты!
Надеюсь, что данная статья убедила Вас в полезности и удобстве Telegram ботов. Буду рада, если Вы поделитесь этой статьёй с друзьями и подпишитесь на обновления блога! До новых встреч!