Боты: информация для разработчиков
Боты — специальные аккаунты в 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.
Добавить бота в Телеграм — как его найти и начать работу
Добавить нового бота в Телеграм очень просто. В последнее время этот вопрос актуален для пользователей мессенджера. Это неудивительно, потому что функционал ботов очень разнообразен. Изготавливать их тоже не очень сложно, простого Телеграм-бота с элементарными функциями можно сделать и добавить самому.
Если вы обладаете хотя бы начальными навыками программирования, то функционал работа можно значительно расширить.
Программные помощники умеют массу полезного. С их помощью можно находить музыку, фильмы, книги и другую полезную информацию. Есть Телеграм-боты, которые добавляются в групповые чаты и могут озвучивать текстовые сообщения. Масса роботов — хорошие посредники для различных сервисов, компаний и банков.
Свои собственные боты есть у «Сбербанка», «Почты России», «OneTwoTrip», «Связного», «Медузы» и многих других.
Помимо них есть ещё сотни тысяч роботов поменьше, общая аудитория которых насчитывает десятки миллионов пользователей.
Доступность, простота и эффективность Телеграм- ботов сделали их крайне популярными среди пользователей. Поговорим о том, что это такое и как ими пользоваться.
Специально для жителей РФ: рекомендуем бота TeleBot, который раздает надежные, быстрые и бесплатные MTProxy для обхода блокировки Telegram.
Содержание:
Как начать работу с ботом
В этом случае предполагается, что вы уже знаете конкретное имя робота, которого хотите добавить. Если же нет, вам помогут подборки и каталоги, такие как наш.
Рекомендуем к обязательному прочтению нашу огромную подборку лучших ботов для Телеграм.

Помимо этого, лучше знать несколько универсальных команд, которые работают практически во всех ботах:
Что делать, если бот не работает
Другой причиной может быть ошибка в процессе разработки Телеграм-бота, которую допустил программист. Если компания-владелец перестала поддерживать бот-сервис, то программный помощник скорее всего не будет откликаться на команды.
Как ещё можно использовать ботов
Это хороший инструмент для администраторов каналов и групп.
Если вы ведёте свой канал, вам могут пригодиться боты для автоматического и отложенного постинга.
Это значительно облегчает администрирование и позволяет удобно и оперативно вести даже несколько каналов сразу.
Боты для каналов и чатов также позволяют устраивать голосования, добавлять другой интерактив, банить участников в автоматическом режиме и облегчать жизнь администратора другими способами.
Подробнее о ботах для групп и каналов мы уже писали. Надеемся, что вы найдёте в этой статье что-то полезное.
Как добавить бота в Телеграмм
Разработчики мессенджера поощряют создание роботов, поэтому их количество растет с каждым днем. Сегодня расскажем, как найти и добавить бота в Телеграмм, а также как его использовать. Это очень полезные программы, которые смогут управлять за вас каналами или размещать в ваших группах сообщения/рассылки и пр. Ведь на поиск и выдачу информации уходит много времени, а качественный робот сделает все сам. Если же вы занимаетесь бизнесом, то программы-роботы могут стать отличным маркетинговым инструментом.
Где искать нужный сервис
Как узнать о боте подробнее?
Вся дополнительная информация описывается разработчиком на этапе создания. Для пользователя она также доступна:
Также информация появляется при старте робота.
Как в Телеграмм добавить бота?
После того, как вы узнали название ресурса, введите его в строку поиска (значок лупы). На экране появится список программ, подходящих под набранную строку. Выбирайте нужный и щелкайте на него. Теперь робот всегда будет в списке.
Чтобы начать чат, просто нажмите на него. Сообщения вводятся в строку поиска. Никакие особенных действий, как видим, чтобы добавить бота в чат Telegram предпринимать не нужно.
Как добавить бота в Телеграмм в группу
Как добавить бота в беседу разобрались. Осталось узнать, как добавить бота в канал Телеграмм. Для этого выполните следующие действия:
Теперь робот будет управлять вашим каналом и выполнять работу за вас. Итак, мы рассказали, как добавить бота в канал Телеграмм на мобильной версии. Web интерфейс очень ограничен в возможностях, здесь вы эту процедуру проделать не сможете.
Телеграм бот как добавить
Мессенджер Телеграм – многофункциональное приложение, растущая популярность которого обусловлена универсальностью и разнообразием функций. Telegram можно устанавливать на различные платформы, сохраняя историю общения.
Функционал программы не исчерпывается организацией обмена новостями, информацией или мультимедийным контентом. Телеграм можно использовать в целях рекламы товаров или услуг.
Для организации эффективной работы с приложением служат автоматические подпрограммы, которые называются ботами. Эти роботы предназначены для выполнения конкретных целей. Алгоритм установки и использования ботов несложен. Вне зависимости от операционной системы, установленной на устройстве, каждый абонент Телеграм может использовать помощников для реализации собственных задач.
Для чего нужны боты
Bot является своеобразным посредником между человеком и базами данных, предназначенным для ведения диалога и упрощения поиска. В качестве руководства программа выбирает набор ключевых запросов и параметров. Работа организуется в соответствии с принципами искусственного интеллекта. В сообщении, поступившем от пользователя, помощник распознает ключи, а затем обращается к базе данных за ответом.
Боты-консультанты справляются с ответами на стандартные вопросы клиентов ничуть не хуже, чем профессиональные специалисты. Часто невозможно определить, кто автор ответа: человек или программа.
Как работать с ботом
Готовый чат-бот использовать легко. Выбрав помощника, пользователь сможет выполнять с роботом следующий набор действий:
Продвинутый пользователь может создать хелпера самостоятельно, назначить круг выполняемых задач и присвоить ник. Однако начинать знакомиться с ботами следует с выполнения элементарных операций.
Как добавить бота
Добавление хелпера в мессенджер осуществляется согласно следующему алгоритму:
Внимание! Если администратор канала или чата заранее заблокировал для сторонних абонентов возможность входа в беседу, эта блокировка распространится и на бота-помощника.
Процесс подключения занимает 1-2 минуты. Более сложной будет настройка хелпера в соответствии с потребностями пользователя.
Поиск бота
Чтобы найти нужного робота, можно обратиться к помощи @StoreBot или просмотреть каталог на одном из сайтов.
Выбор категории
Имя робота обычно говорит само за себя. Если пользователю нужно подробное описание функций помощника, можно воспользоваться информацией из каталога.
Подключение к группе
Чтобы начать взаимодействовать с участниками выбранной беседы, робот должен стать членом группы. Это действие осуществляется в настройках группы. Находясь в чате, нужно нажать на название группы. Перед пользователем высветится список участников. Далее нужно использовать строку «добавить участника».
Создание собственного бота-помощника
Для создания хелпера проще всего воспользоваться внутренним сервисом Телеграм. Пошаговая инструкция:
Как только процесс завершится, автор бота получит ссылка для подключения бота-помощника к чату. Создание новых каналов и бесед лучше реализовывать на компьютере. Так будет более удобно добавлять файлы.
Сбой в работе помощника
Для организации общения в чатах Телеграм использует серверы, находящиеся в «облаке». Скорость обмена данными с хранилищем оказывает влияние на корректную работу бота-помощника. Если хелпер «тормозит», рекомендуется набраться терпения и подождать, пока информация пройдет положенный путь. Если же источник проблем – ошибка программиста или блокировка бота владельцем канала, пользователю придется пройти весь путь сначала, используя другого робота.
Альтернативные способы применения ботов
Кроме рассылки информации, роботы можно использовать в целях:
Альтернативная возможность использования бота-помощника – администрирование канала Телеграм. Для этого пользователь должен предоставить боту права администратора. После этого помощник сможет организовывать:
Бот-помощник, действуя в качестве администратора, освобождает пользователя от многократного повторения однотипных действий, а также замещает своего создателя на время отдыха. Качественный бот-помощник способен руководить аккаунтом.
Заключение
Боты-помощники действуют одинаково эффективно для устройств на разных платформах. При помощи этих подпрограмм можно реализовывать продажи, продвигать продукцию или оказывать консультационные услуги.
Хотите научится делать ботов на русском языке или интересует разработка обращайтесь к инструкциям выше. А когда получится написать, сделать и запустить, поставить программу в телеграмме оставляйте комментарии ниже.
Инструкция: Как создавать ботов в 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’ (или любой другой метод, используемый ботом).









