10 ботов Telegram, которые упростят вашу жизнь и развлекут

Premium

VK Music BOX

Погрузись в мир музыки БЕЗ ОГРАНИЧЕНИЙ! 1 Ищи любимые треки 2 Создавай собственные плейлисты 3 Загружай аудиозаписи из
Premium

Пчелиный улей

Отличный инвестиционный бот. Покупай пчёл, собирай мёд и получай доход. Супер команда инвесторов.
Premium

MUSIC FUCK

Топовый бот для быстрого поиска и скачивания музыки абсолютно бесплатно и максимально удобно! С Music Fuck ты сможешь
Premium

Бот Алёша

Привет, меня зовут бот Алёша и я могу озвучивать твои сообщения прикольным голосом робота. Просто напиши мне. @aleksobot
Premium

VK MUSIC

👋Приветствуем 🎧Я создан для меломанов! 🤖Я умею: -🔝Загружать топ музыку -🆕Загружать новинки музыки -🤳Загружать музыку с
Premium

Проведение розыгрышей для подписчиков

Бот поможет провести розыгрыш и определит победителей случайным образом.
Premium

Отборные вакансии удалённой работы

Бот помогает найти удалённую работу бесплатно, без каких-либо регистраций.
Premium

Виртуальные номера для приема СМС

📲 Наш БОТ предоставляет возможность использовать временный виртуальный номер для приема СМС, чтобы зарегистрировать
Premium

Погода

Бот, который покажет погоду в твоём городе! Погода представлена сервисом Gismeteo.ru

MusicKeeperBot

В Telegram запустили сервис хранения музыки! Больше никакой рекламы и ограничений как в контакте! Создавайте свои

Дай Кредит

Удобный сервис подбора займа прямо в Telegram. Первый заем БЕСПЛАТНО!

LuckyRoomBot

Первое Telegram casino с проверкой на честность! Telegram бот с защитой игр от вмешательства в результат!

Solo Games

Любимые игры теперь в Telegram! 2048, Main Rusher и многое другое!

TgBoxBot

Заработок и продвижение в Telegram

OctoProBot

Заработок в Telegram. Все для PR, маркетинга и арбитража. Отзывы, регистрации, депозиты, заказы, установки, подписчики



Мессенджер Telegram столь популярен, что уже обзавёлся многочисленными ботами, выполняющими самые разные задачи – от простейших, шуточных программ до серьёзных и сложных Интернет-магазинов.

Полезные боты для Telegram – ТОП 30 лучших

Охватить всё многообразие роботов, уже написанных для Телеграма не представляется возможным. Мы попробуем описать только несколько, которые, на наш взгляд, заслуживают внимания.

Flibusta Book

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

ЖИЗНЬ ЮТУБ

@lifeyt – здесь собраны все горячие новости сайта Youtube, преимущественно русской его части. Самые новые вирусные ролики, модные тренды, горячие обсуждения и так далее.

Город Будущего

@citytomorrow – интересные и неформальные рассказы о городах мира. Многочисленные подробности и детали, о которых многие даже понятия не имеют.

КОРКИ

@ot_korki_do_korki – да, на самом деле название бота и канала именно такое, «от корки до корки». Тут собраны сотни GIF-картинок самого разного содержания.

Skinseption

@Skinseption_bot – этот бот уже для серьёзных вещей. Он сможет проконсультировать вас насчёт родинок на теле – насколько они опасны и не пора ли сходить к дерматологу. Не шутите со здоровьем, безобидные родинки могут оказаться раковыми образованиями.

Шутник

@WyTHIK – назначение бота тоже понятно из названия. Это собрание прикольных картинок, которые обновляются почти каждый день. Поднимите себе настроение!

Zachekin

@ZachekinBot – очень полезный бот для путешественников. Он помогает оформить регистрацию на рейсы Аэрофлота. Вы сможете выбрать дешёвые рейсы по вашему направлению, проверить свободные места в салоне, а также сообщить вам, когда открывается регистрация.

InMind

@InMind – изучайте английский язык, в наше время без этого сложно добиться успеха! Заучивайте слова и тренируйте разговорный английский со случайными собеседниками.

Вк аудиозаписи | Vk audio

@audio_vk_bot – назначение бота тоже понятно из названия. В соцсети Вконтакте огромное количество разной музыки. Бот занимается тем, что помогает твиттерянам искать нужные треки и скачивать их. Можно скачать любые композиции из любой страницы и сохранить их на свой смартфон.

Remember Words Bot

@rememberwords_bot – ещё один незаменимый помощник в изучении языков. Бот помогает с лёгкостью запоминать слова для пополнения вашего лексикона. Можно добавлять в базу свои слова, можно настроить напоминания: бот будет сообщать вам, когда пора вернуться к повторениям, чтобы освежить новый материал. Бот работает в обе стороны языковой пары, например русский-английский или английский-русский.

VkStalker

@vkStalkerBot – бот следит за активностью ваших друзей в социальной сети Вконтакте. Вам не нужно будет логиниться в ВК, бот будет сообщать вам самое основное. Например, кто именно из ваших френдов находится онлайн в данную минуту (об их появлении он сможет оповещать вас сигналом), сколько кто отправил сообщений и комментов, в каких чатах поучаствовал. Можно вывести сводную информацию об активности конкретных пользователей за некоторый интервал времени.

TGhost – файлообменник

@Tghost_bot – инструмент для быстрой и удобной передачи файлов. Боту нужно передать файл, и он пришлёт вам ссылку для его скачивания. Эту ссылку вы сможете отправить кому угодно, и таким образом поделиться файлом. Всё просто и понятно.

Yandex Translator

@ytranslatebot – робот делает ровно то, что заявлено у него в названии. Ему нужно передать текст на любом языке, он сам определит, какой это язык, и вернёт вам перевод на русский. Очень удобно в путешествиях по разным странам.

Yandex Maps

@yandexmapsbot – ещё один бот от компании Yandex. Показывает пробки на карте города и оценивает их в баллах. Кроме того, если задать ему вопрос “Где я?”, он покажет ваше местоположение.

Автомобильная рация

@auto_radio_bot – таких каналов есть несколько, но этот считается самым популярным. Бот позволяет общаться водителям на дорогах. Укажите боту населённый пункт, который вас интересует, и он выдаст вам полезную информацию о ситуации на дорогах. Другие автомобилисты уже добавили данные о дорожных происшествиях, о постах ДПС, о пробках и тому подобное. Вы можете делать то же самое, помогая всем, кто едет по трассе рядом с вами.

FinderMusic

@fmusbot – считается самым популярным ботом для поиска музыки в Сети. Может быть, это и так: бот установлен на многих тысячах мобильных устройств. Поиск ведётся по любым жанрам, количество музыки, известной боту, просто зашкаливает! Комментаторы отмечают, что с его помощью можно найти практически всё, что угодно: любую музыку, даже самую малоизвестную. Можете проверить сами.

Avtobotoff

@avtobotoff_bot – бот для поиска автовладельцев по государственным номерам их автомобилей. Создатели заявляют, что это не «чёрные» базы ГИБДД, а информация, которую люди сами оставляют в базе приложения. В некоторых ситуациях может оказаться полезным.

Bot Shop

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

Бот Максим

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

Угадай по эмодзи

@EmojiGames_bot – прикольная игра-викторина, в которой вам надо будет угадать слово, зашифрованное картинками-эмодзи. Тот, кто угадает десять таких ребусов подряд, становится победителем недели! Попробуйте, может, и вам повезёт!

Digital Master

@mastermindgamebot – ненапряжная игра с цифрами. Бот предназначен, видимо, для замкнутых интровертов, или чтобы просто потыкать пальцем в экран, если больше уж совсем нечем заняться. Информации про игру в Сети мало, но может быть, как раз вам понравится!

CryptoBanker

@Cryptobanker – бот для получения и обмена криптовалют с выдачей бонусов за привлечение рефералов. Чтобы понять, как это работает, нужно быть погружённым в тему майнинга. Тема заработка на криптовалютах в наши дни весьма модная и быстро развивается. Попробуйте, может быть, это для вас!

Tap2Bot

@tap2bot – этот бот умеет много полезного: искать и скачивать книги по названию или по имени автора, выбирать дешёвые такси в вашем городе, искать фильмы на торрентах, находить кафе и прочие полезные заведения поблизости от вас, и так далее. Судя по всему, бот активно развивается авторами, и постоянно обретает всё новые функции.

Kampung Maifam

@kampungmaifambot – англоязычная игра, в которой вам предлагается строить свою ферму. Можно будет обрабатывать грядки, выращивать домашний скот, рыбачить, и так далее. Экономические симуляторы весьма популярны, так что и этот вам может прийтись по вкусу.

VoteUP

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

Skeddy

@SkeddyBot – спасение для забывчивых людей. Простой бот, который можно настроить для напоминания о делах в течение дня. Не полноценный планировщик, но тоже может быть полезен.

Ударения

@accentsbot – маленький, но полезный инструмент для копирайтеров. Боту нужно отправить слово, а он покажет вам правильное ударение в нём. Сфера применения этого бота узкая, он не всем нужен, но для тех, кто работает с текстами, или часто выступает перед публикой, может стать спасением.

YouTube Audio Downloader

@YTAudioBot – бот скачивает из YouTube не видеоролики, а звуковые дорожки к ним. Это может быть полезно, если вы хотите как-то использовать понравившуюся музыку из того или иного видео. Нужно только помнить при этом, что владельцы авторских прав могут предъявить вам за это претензии, так что действуйте на свой страх и риск.

Andy | Learn English

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

Magic Bitcoin Farm

@mfarm_bot – это игровой бот, который позиционирует себя как экономический симулятор, но приносящий реальные деньги. Нужно будет покупать семена различных фруктов и на них зарабатывать. Чтобы понять, как это работает, читайте инструкцию на сайте игры.

bitcoin investment bot

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

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

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