Добавить бота в Телеграм — как его найти и начать работу

Добавить нового бота в Телеграм очень просто. В последнее время этот вопрос актуален для пользователей мессенджера. Это неудивительно, потому что функционал ботов очень разнообразен. Изготавливать их тоже не очень сложно, простого Телеграм-бота с элементарными функциями можно сделать и добавить самому.

Если вы обладаете хотя бы начальными навыками программирования, то функционал работа можно значительно расширить.

Рекомендуем нашу статью о самостоятельном создании Телеграм-ботов.

Программные помощники умеют массу полезного. С их помощью можно находить музыку, фильмы, книги и другую полезную информацию. Есть Телеграм-боты, которые добавляются в групповые чаты и могут озвучивать текстовые сообщения. Масса роботов — хорошие посредники для различных сервисов, компаний и банков.

Свои собственные боты есть у «Сбербанка», «Почты России», «OneTwoTrip», «Связного», «Медузы» и многих других.

Помимо них есть ещё сотни тысяч роботов поменьше, общая аудитория которых насчитывает десятки миллионов пользователей.

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

Специально для жителей РФ:
рекомендуем бота TeleBot
, который раздает надежные, быстрые и бесплатные MTProxy для обхода блокировки Telegram.

Содержание:

  • Как начать работу с ботом
  • Что делать, если бот не работает
  • Как ещё можно использовать ботов

Для обычных пользователей
роботы 
работают через диалоги прямо в
Телеграм
. Нужного можно
найти
через строку поиска. Лучше всего использовать для этого имя, оно всегда начинается с «@»
и заканчивается на «…bot»
, например, @PollBot — помощник для создания голосований.

В этом случае предполагается, что вы уже знаете конкретное имя робота, которого хотите добавить. Если же нет, вам помогут подборки и каталоги, такие как наш.

Рекомендуем к обязательному прочтению нашу огромную подборку лучших ботов для Телеграм.

Чтобы активировать помощника, нужно начать с ним диалог нажатием кнопки
. В дальнейшем большинство функций будут доступны именно через окно беседы. Но есть, например, @gif
(для поиска гифок) или @vkmusic_bot
(для поиска музыки) — их можно вызывать в диалоге с вашим собеседником, для чего нужно напечатать символ «@»
.

Больше музыкальных ботов вы найдете в специальном разделе нашего Каталога.

В окне беседы можно
общаться с Телеграм-ботом
, вводя команды или нажимая на кнопки. Если кнопки не предусмотрены, а команд вы не знаете, просто напечатайте в поле набора сообщения слеш «/»
. После этого появится всплывающее меню с подсказками, где будут видны команды, которые можно добавить.

Варианты команд на примере одного из популярных ботов для прокси

Помимо этого, лучше знать несколько универсальных команд, которые работают практически во всех ботах
:

  •  — начало работы с ботом;
  •  — помощь по функциям и работе бота;
  •  — настройки, если они предусмотрены.

Бот
— это программный продукт, который использует облачные сервера
Телеграм
для
работы
. Поэтому их работоспособность может влиять на скорость реакции на команды. Чаще всего, если робот долго не отвечает на команды, то проблема именно в этом. Единственное, что можно сделать в этом случае — немного подождать, пока работа не возобновится.

Другой причиной может быть ошибка в процессе разработки Телеграм-бота, которую допустил программист. Если компания-владелец перестала поддерживать бот-сервис, то программный помощник скорее всего не будет откликаться на команды.

Это хороший инструмент для администраторов каналов и групп.

Если вы ведёте свой канал, вам могут пригодиться боты для автоматического и отложенного постинга.

Это значительно облегчает администрирование и позволяет удобно и оперативно вести даже несколько каналов сразу.

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

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

Узнайте о том, как добавить админа в Телеграм-канал.

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

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) Каркас бота:

URL = "https://api.telegram.org/bot%s/" % BOT_TOKEN MyURL = "https://example.com/hook"  api = requests.Session() application = tornado.web.Application([     (r"/", Handler), ])  if __name__ == '__main__':     signal.signal(signal.SIGTERM, signal_term_handler)     try:         set_hook = api.get(URL + "setWebhook?url=%s" % MyURL)         if set_hook.status_code != 200:             logging.error("Can't set hook: %s. Quit." % set_hook.text)             exit(1)         application.listen(8888)         tornado.ioloop.IOLoop.current().start()     except KeyboardInterrupt:         signal_term_handler(signal.SIGTERM, None) 

Здесь мы при запуске бота устанавливаем вебхук на наш адрес и отлавливаем сигнал выхода, чтобы вернуть поведение с ручной выгрузкой событий. Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.

class Handler(tornado.web.RequestHandler):         def post(self):             try:                 logging.debug("Got request: %s" % self.request.body)                 update = tornado.escape.json_decode(self.request.body)                 message = update['message']                 text = message.get('text')                 if text:                     logging.info("MESSAGEt%st%s" % (message['chat']['id'], text))                      if text[0] == '/':                         command, *arguments = text.split(" ", 1)                         response = CMD.get(command, not_found)(arguments, message)                         logging.info("REPLYt%st%s" % (message['chat']['id'], response))                         send_reply(response)             except Exception as e:                 logging.warning(str(e)) 

Здесь CMD — словарь доступных команд, а send_reply — функция отправки ответа, которая на вход принимает уже сформированный объект Message. Собственно, её код довольно прост:

def send_reply(response):     if 'text' in response:         api.post(URL + "sendMessage", data=response) 

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

3. Команды

Перво-наперво, необходимо соблюсти соглашение Telegram и научить бота двум командам: /start и /help:

def help_message(arguments, message):     response = {'chat_id': message['chat']['id']}     result = ["Hey, %s!" % message["from"].get("first_name"),               "rI can accept only these commands:"]     for command in CMD:         result.append(command)     response['text'] = "nt".join(result)     return response 

Структура message[‘from’] — это объект типа User, она предоставляет боту информацию как id пользователя, так и его имя. Для ответов же полезнее использовать message[‘chat’][‘id’] — в случае личного общения там будет User, а в случае чата — id чата. В противном случае можно получить ситуацию, когда пользователь пишет в чат, а бот отвечает в личку. Команда /start без параметров предназначена для вывода информации о боте, а с параметрами — для идентификации. Полезно её использовать для действий, требующих авторизации. После этого можно добавить какую-нибудь свою команду, например, /base64:

def base64_decode(arguments, message):     response = {'chat_id': message['chat']['id']}     try:         response['text'] = b64decode(" ".join(arguments).encode("utf8"))     except:         response['text'] = "Can't decode it"     finally:         return response 

Для пользователей мобильного 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:

command1 - Description
command2 - Another description
I:
whoisyourdaddy - Information about author
base64 - Base64 decode
BotFather: Success! Command list updated. /help

C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.

4. Свобода

Как можно было заметить, Telegram присылает сообщение целиком, а не разбитое, и ограничение на то, что команды начинаются со слеша — только для удобства мобильных пользователей. Благодаря этому можно научить бота немного говорить по-человечески.UPD:
Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/<commans://core.telegram.org/bots#privacy-mode)

  • All messages that start with a slash ‘/’ (see Commands above)
  • Messages that the bot by username
  • Replies to the bot’s own messages
  • Service messages (people added or removed from the group, etc.)

Чтобы бот получал все сообщения в группах пишем @BotFather команду /setprivacy
и выключаем приватность. Для начала в Handler добавляем обработчик:

if text[0] == '/':     ... else:     response = CMD[""](messalogging.info("REPLYt%st%s" % (message['chat']['id'], response))     send_reply(response) 

А потом в список команд добавляем псевдо-речь:

RESPONSES = {     "Hello": ["Hi there!", "Hi!", "Welcome!", "Hello, {name}!"],     "Hi there": ["Hello!", "Hello, {name}!", "Hi!", "Welcome!"],     "Hi!": ["Hi there!", "Hello, {name}!", "Welcome!", "Hello!"],     "Welcome": ["Hi there!", "Hi!", "Hello!", "Hello, {name}!",], } def human_response(message):     leven = fuzzywuzzy.process.extract(message.get("text", ""), RESPONSES.keys(), limit=1)[0]     response = {'chat_id': message['chat']['id']}     if leven[1] < 75:         response['text'] = "I can not understand you"     else:         response['text'] = random.choice(RESPONSES.get(leven[0])).format_map(             {'name': message["from"].get("first_name", "")}         )     return response 

Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map — удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.

5. Не текст.

Боты, как и любой нормальный пользователь Telegram, могут не только писать сообщения, но и делиться картинками, музыкой, стикерами. Для примера расширим словарь RESPONSES:

RESPONSES["What time is it?"] = ["", "{date} UTC"] </c

И будем отлавливать текст :

if respo'text'] == "":         response[cker'] = "BQADAgADeAcAAlOx9wOjY2jpAAHq9DUC"         del response['text'] 

Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:

def send_reply(response):     if 'sticker' in response:         api.post(URL + "sendSticker", data=response)     elif 'text' in response:         api.post(URL + "sendMessage", data=response) 

И все, теперь бот будет время от времени присылать стикер вместо времени:

6. Возможности

Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие). Вспоминая статью про умный дом, могу сказать, что теперь извращений меньше, а работа прозрачнее.

7. Ограничения

К сожалению, на данный момент существует ограничение на использование webHook — он работает только по https и только с валидным сертификатом, что, например для меня пока критично за счет отсутствия поддержки сертифицирующими центрами динамических днс. К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:

while True:             r = requests.get(URL + "?offset=%s" % (last + 1))             if r.status_code == 200:                 for message in r.json()["result"]:                     last = int(message["update_id"])                     requests.post("http://localhost:8888/",                                   data=json.dumps(message),                                   headers={'Content-type': 'application/json',                                            'Accept': 'text/plain'}                      )             else:                 logging.warning("FAIL " + r.text)             time.sleep(3) 

P.S. По пункту 7 нашел удобное решение — размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом. UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч 'method': 'sendMessage' (или любой другой метод, используемый ботом).

730

902.1k


730

Разработчики мессенджера поощряют создание роботов, поэтому их количество растет с каждым днем. Сегодня расскажем, как найти и добавить бота в Телеграмм, а также как его использовать. Это очень полезные программы, которые смогут управлять за вас каналами или размещать в ваших группах сообщения/рассылки и пр. Ведь на поиск и выдачу информации уходит много времени, а качественный робот сделает все сам. Если же вы занимаетесь бизнесом, то программы-роботы могут стать отличным маркетинговым инструментом.

Где искать нужный сервис

Если вы не знаете, как точно называется нужный вам ресурс, то можно воспользоваться сайтом Telegram Store https://storebot.me/
Это каталог, в котором представлена информация обо всех актуальных разработках. Если не удобно искать на сайте, ищите @strorebot
. Вы можете посмотреть топ чарт, новинки или недавно добавленные. Также в строку поиска можно набрать ключевое слово, связанное с назначением сервиса – это поможет выполнить целевой поиск.

Как узнать о боте подробнее?

Вся дополнительная информация описывается разработчиком на этапе создания. Для пользователя она также доступна:

  1. Щелкните по названию программы бота в списке вашего аккаунта.
  2. В верхней строке нажмите на название. Если вы пользуетесь web-версией, то нажмите по логотипу справа от строки ввода сообщений.
  3. Откроется окно, в котором вы увидите описание и правильное название.

Также информация появляется при старте робота.

Как в Телеграмм добавить бота?

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

Чтобы начать чат, просто нажмите на него. Сообщения вводятся в строку поиска. Никакие особенных действий, как видим, чтобы добавить бота в чат Telegram предпринимать не нужно.

Как добавить бота в Телеграмм в группу

Рассмотрим пошагово:

  1. Создайте группу Телеграмм. Для этого нажмите значок главного меню в верхнем левом углу и щелкните по нужному пункту. Укажите контакты участников и введите имя группы.
  2. Откройте группу и щелкните по ее названию сверху (логотип группы около строки ввода в web-версии).
  3. Найдите пункт «Добавить участника» (Add member для нерусифицированного мессенджера).
  4. В окне нажмите значок лупы и введите название добавляемого робота.
  5. Подтвердите согласие и программа появится в группе.

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

  • Аналогично созданию группы создаем канал Телеграмм. Вводим имя и выбираем: частный или публичный. Копируем ссылку – приглашение. Если вы пользуетесь смартфоном, просто нажмите на нее и подержите.
  • Пригласите участников в канал. Вы можете добавлять участников в уже созданный канал. Для этого зайдите в него и нажмите на название. Далее выберите «Подписчики» и «Добавить подписчика» или «Пригласить по ссылке».
  • Бот не может быть подписчиком, только администратором. Поэтому вам нужно создать собственного робота через сервис @Botfather и настроить его. Обязательно включите «inline mode» и выдайте групповые права в меню «Group Privacy».
  • Предусмотрите для программы выполнение действий, например, опрос или рассылку. Задать их можно в конструкторе @manybot.
  • Далее заходите в канал и нажимайте по его названию. В меню ищите «Управление каналом» или Manage Channel
  • Нажимайте Добавить администратора.
  • Далее щелкните на значок лупы (поиск) и вводите название своего бота.
  • Щелкайте по найденному и устанавливайте для него права.

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

Рейтинг автора
5
Подборку подготовил
Андрей Ульянов
Наш эксперт
Написано статей
168
Ссылка на основную публикацию
Похожие публикации