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

Популярный мессенджер Telegram , разработанный автором «ВКонтакте» Павлом Дуровым, в прошлом году обновился до версии 3.0. Кроме прочего она принесла ботов, с которыми в этом мессенджере стало намного удобнее общаться, искать информацию, развлекаться и тому подобное. Что такое боты в Telegram и как ими пользоваться - читайте дальше.

Что такое боты? Робот или боты - это специальные аккаунты в Telegram, которые могут автоматически обрабатывать и отправлять сообщения. Они создаются программистами и работают у них на сервере.

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

Как пользоваться ботами Telegram

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

У роботов нет статусов «онлайн» и «был в сети», вместо этого отображается надпись «робот». Кроме этого, боты не могут сами начать общение. Выбранного бота надо сначала добавить в группу или первым начать с ним диалог. Для этого можно использовать ссылки вида telegram.me/<имя бота> или поиск по имени пользователя. Найти ботов просто, поскольку в них имя заканчивается на «bot», например, @TriviaBot.

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

Когда вы освоите общение с ботами через их клавиатуры, тогда можно переходить к более гибкому взаимодействию. Для этого ботам можно отправлять команды напрямую. Команда бота - это строка вида /Команда [необязательный] [аргумент]. Она всегда начинается с косой черты «/» и имеет максимальную длину 32 символа. Команды могут состоять из букв латинского алфавита, цифр и подчеркивания. Несколько примеров:

/ get_messages_stats

/ Set_timer 10min Alarm!

/ Get_timezone London, UK

Примеры активных ботов Telegram

Сегодня в Telegram работают десятки роботов. Вот несколько самых популярных:

@ytranslatebot - переводит ваши сообщения на любой язык мира. Работает как в личных чатах, так и в групповых.

@imagesearchbot - ищет картинки прямо в чате.

@ImageBot - отправьте этому боту ключевое слово, и он найдет подходящее изображение.

@HotOrBot - ищет новых знакомых в стиле приложения для знакомств Tinder, в которой надо выставлять людям «нравится» или «не нравится».

@PollBot - позволяет проводить в группах и чатах опрос.

@RateStickerBot - с ним можно открывать и оценивать новые стикеры.

@AlertBot - установите время и наблюдайте, как бот будет работать вместо будильника.

@glavburgerbot - бот, который берет ваши координаты и ищет ближайшее заведение, где можно съесть бургер.

@telerobot - выводит погоду, новости и цитаты с сайта bash.im.

@clippy - создает стикеры из изображений.

@QTrackerbot - отслеживает посылки, отправленные «Укрпочтой», «Новой почтой», «Деливери» и «Мист-Экспрессом».

@paypbbot - позволяет клиентам «Приватбанка» переводить друг другу средства в мессенджере Telegram.

Пишем ему /start и получаем список всех его команд.
Первая и главная - /newbot - отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя - в конце оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.

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

Не забудьте проверить полученный токен с помощью ссылки 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("MESSAGE\t%s\t%s" % (message["chat"]["id"], text)) if text == "/": command, *arguments = text.split(" ", 1) response = CMD.get(command, not_found)(arguments, message) logging.info("REPLY\t%s\t%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"] = "\n\t".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: Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/) (https://core.telegram.org/bots#privacy-mode)

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

Для начала в Handler добавляем обработчик:

If text == "/": ... else: response = CMD[""](message) logging.info("REPLY\t%s\t%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) response = {"chat_id": message["chat"]["id"]} if leven < 75: response["text"] = "I can not understand you" else: response["text"] = random.choice(RESPONSES.get(leven)).format_map({"name": message["from"].get("first_name", "")}) return response
Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map - удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.

5. Не текст.

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

Для примера расширим словарь RESPONSES:

RESPONSES["What time is it?"] = ["", "{date} UTC"]
И будем отлавливать текст :

If response["text"] == "": response["sticker"] = "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" (или любой другой метод, используемый ботом).

Теги:

  • telegram
  • введение
  • python3
Добавить метки

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Подписаться

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

Больше видео на нашем канале - изучайте интернет-маркетинг с SEMANTICA

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

Одно из последних нововведений - это боты. Сама платформа наиболее интересна именно потому, что ее боты имеют более богатый пользовательский интерфейс (по сравнению с платформой Facebook или Вконтакте).

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

Как они работают

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

Вы общаетесь с серверами с помощью простого HTTPS-интерфейса, который представляет собой упрощенную версию Telegram. По другому этот интерфейс можно назвать программным каталогом или бот-алгоритмом. Подробнее о том, как работает бот в телеграмм можно узнать, став разработчиком программного обеспечения. Новые bot-утилиты создаются с помощью специальной утилиты @BotFather, который значительно упрощает процесс девелопмента.

Для чего они нужны

Вы можете общаться с ними, отправляя им сообщения и встроенные команды. Все ваши сообщения кодируются в специализированные HTTPS-запросы, которые направляются в интерфейс приложения Telegram и обрабатываются программой бот-алгоритмом.

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

Для Telegram были созданы тысячи разнообразных ботов, упрощающих серфинг сети. Их функциональность все еще является достаточно ограниченной, но это не мешает им оказывать пользу в самых разнообразных ситуациях. Telegram @bot - стремительно развивающаяся и каждодневно обновляющаяся технология будущего.

Для чего используются боты в Телеграм

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

Условно все bot-утилиты можно разделить на несколько функциональных подгрупп, каждой из которых найдется свое применение:

  • Интеграция с другими службами. Бот может обогащать чаты Telegram содержимым из внешних сервисов (@Gmail, @GIF, @IMDB, @YouTube).
  • Прием платежей от пользователей Telegram. У встроенных программ есть возможность предлагать платные услуги или работать как виртуальный магазин (@DemoShopBot).
  • Создание собственных инструментов. Бот-программа может предоставлять вам уведомления, прогнозы погоды, переводы, форматирование документов или другие услуги (@Markdownbot, @Stickerbot, @Votebot, @Likebot).
  • Создание игр. bot-утилита может предложить богатый интерфейс HTML5, от простых аркад и головоломок до 3D-шутеров и игр в режиме реального времени (@GameBot, @Gamee).
  • Построение социальных сетей внутри Telegram. Искусственный интеллект может связывать людей, ищущих партнеров по беседе, исходя из общих интересов (@HotOrBot).

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

Как и где найти бота в телеграмме

  • Для поиска можно воспользоваться официальным сайтом Telegram, на котором существует специальный раздел « ». Там перечислены наиболее полезные и интересные утилиты приложения.
  • Используйте другие информационные ресурсы, позволяющие найти интересных и уникальных ботов. В этом могут помочь многочисленные подборки на YouTube.
  • Вы также можете воспользоваться @Storebot, который осуществляет поиск бота в телеграмм прямо в приложении. В его функционал входят интересные и полезные команды, облегчающие поиск.

Как пользоваться и общаться с ботом в телеграмме.

Пользователи могут взаимодействовать с программами, отправляя им сообщения, команды и встроенные запросы. В их числе могут быть заранее указанные ключевые слова, голосовые сообщения, геолокации. Для начала общения с ботом есть два способа:

  1. Отправлять сообщения им команды, открывая чат с ними или добавляя их в группы. Это полезно для чатов-ботов или новостных ботов, таких как официальный бот @TechCrunch.
  2. Отправлять запросы непосредственно из поля ввода, введя имя пользователя @bot и запрос. Это позволяет отправлять контент из встроенных ботов непосредственно в любой чат, группу или канал.

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

@YouTube Bot

Введите @youtube, оставьте пробел и введите название видео, если вы хотите отправить интересующий вас ролик, не отрываясь от Telegram.

Поиск гифок @GIF

GIF работают inline, поэтому все, что вам нужно сделать, это набрать @GIF, оставить пробел и ввести реакцию, которую вы хотите увидеть. Например, при вводе гневного смайлика, появится ряд gif анимаций, иллюстрирующих эту эмоцию. Прокрутите страницу, чтобы найти лучшую.

@Weatherman bot

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

@Stickers

Стикеры, без сомнения, самые крутые вещи в мессенджерах, и нигде нет стикеров лучше и разнообразнее, чем в Telegram. До сих пор процесс накопления вашей собственной коллекции стикеров был сложен. Все, что вам нужно сделать, это ввести в поле @Stickers, а затем выполнить поиск через ваш , который вы хотите превратить в стикер.

Развитие Telegram не стоит на месте, технология бот-шеринга развивается и приобретает все большую популярность. Это наиболее удобный и массовый способ выполнять широкий спектр задач – от пиара до управления домашней техникой. Уже сейчас круг задач, невыполнимый для бота стремительно сужается, а в ближайшем будущем таких «невозможных» поручений не станет совсем.

Мессенджер «Телеграмм» приобрёл за короткое время рекордное число пользователей не только благодаря уникальному протоколу безопасности, позволяющему вести переписку без угрозы её взлома и кражи аккаунта. Главной его фишкой , привлекающей публику, всё же являются интересные инструменты, способные как развлечь, так и быть полезными. Боты – одна из таких функциональных возможностей, их в «Телеграмме» великое множество. Поскольку созданием этих помощников может заниматься любой желающий пользователь приложения, они появляются в мессенджере каждый день, чтобы скрасить досуг или облегчить работу своему владельцу и быть полезными остальным своим подписчикам.

Робот Saytextbot для Telegram выполняет функцию озвучки сообщений.

Боты выполняют самые разные функции, от обыкновенной отправки прогноза погоды или курса валют до заказа билетов, осуществления продаж , консультации клиентов и тому подобных действий, которые примитивными никак не назовёшь. Некоторые из них буквально работают за людей, выполняя всю порученную рутинную работу, другие же добавляют позитива пользователям благодаря необычному функционалу. Сегодня поговорим об интересном боте «Телеграмм» Saytextbot. Он выполняет функцию генерации текста в аудио формат.

Как пользоваться ботом Saytextbot

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


СОВЕТ. Функция озвучивания текста может пригодиться для разных целей. Например, в случае быстрой утомляемости от чтения, наличия плохого зрения или же просто с целью повеселить, разыграть друзей. Вы можете даже придумать своё применение боту, ведь эмуляция голоса может стать действительно полезной.

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

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

Кроме обмена сообщения с близкими и пересылкой медиафайлов, Telegram предоставляет пользователю большой список возможностей. В первую очередь - это создание каналов с полезной информацией, на которые человек может подписаться. А одной из основных особенностей приложения является функциональность ботов. Об их возможностях и о том, как добавить бота в Telegram, повествует данная статья.

Добавление

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

Добавить аккаунт в мессенджере довольно просто. Необходимо знать его аккаунт, начинающийся с символа @. Имя вводится в поиске приложения, из предложенных вариантов нужно выбрать подходящий. Откроется окно взаимодействия с ботом, в нем присутствует кнопка Start или «Начать», если у вас установлена русская локализация. Необходимо ее нажать, тогда активируется режим диалога. У множества аккаунтов присутствует возможность управления кнопками снизу экрана, а не только посредством команд.

Прикрепление бота в группу

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

  • Найти необходимого аккаунта в поиске;
  • Послать ему свои контактные данные;
  • Пригласить его в группу.

Важный нюанс - не во всех группах присутствует возможность добавления чат-бота. Этот параметр задает создатель. Сам процесс довольно простой, занимает буквально несколько минут на ознакомление. Предназначается он для более быстрого наполнения чата контентом и пользователями.