Содержание
Боты — это модно. Нина Белая специально для Нетологии выбрала 45 полезных ботов для Telegram.
Эти телеграм-боты помогут решать задачи быстро и с пользой.
Хранить и обмениваться файлами
@topdf_bot — Конвертирует в PDF документы и файлы. Поддерживает DOC, DOCX, ODT, TXT и JPG.
@instasave_bot — Скачивает фото и видео из Instagram. Отправляете ссылку — получаете медиафайл.
@driveitbot — Сохраняет на «Google Диск» файлы весом до 20 МБ.
@filesbot — Умеет хранить документы и делиться ими с другими пользователями.
@transferRobot — Еще один помощник для работы с файлами: загружает в облачное хранилище и даёт постоянные ссылки на них.
Найти и скачать
@ru_tracker_bot — Скачивает торрент-файлы с заблокированного в России Rutracker без перехода на сайт.
@freebooksbot, @mybookbot — Ищут книги по запросу, предлагают выбрать формат и сохраняют файл в Dropbox.
@tap2bot — Ищет все: одежду, книги, фильмы, авиабилеты, отели, самые дешевые такси. Работает с Флибустой, РуТрекером, ВКонтакте и другими ресурсами.
курс
Интернет-маркетолог
Узнать больше
- Освойте одну из самых востребованных digital-профессий
- Познакомьтесь с основными инструментами интернет-маркетинга
- Изучите теорию и отработайте практические навыки на реальных проектах
Почта
@findoBot — Поисковый ассистент для почты, облачных хранилищ, контактов. Работает с Gmail, Evernote, Dropbox, OneDrive.
@temp_mail_bot — Создает временный ящик и показывает его содержимое. Сам удаляет все это через 10 минут.
Языки
@ytranslatebot — Бот-переводчик от Яндекса.
@andyrobot — Помогает практиковать английский. Можно выбрать изучение отдельных слов, грамматики или построить диалог. Предлагает аудио с правильным произношением.
@slangbot — Еще один помощник в изучении английского. Можно запросить толкование слова или получить объяснение рандомного выражения из словаря этого бота.
@pronunciationbot — Присылает аудиофайл с произношением слова или фразы. Работает в групповых чатах.
Текст
@grammarnazibot — Проверяет грамотность текста. Если добавить этого бота в общий чат, он укажет на ошибки каждого участника обсуждения.
@swp_bot — Исправляет текст с ошибкой раскладки — русскую на английскую или наоборот.
@voiceru_bot — Синтезирует текст в речь и наоборот.
Для работы в Telegram
@yetanotherbot — Создает анонимный чат с заменой настоящего ника пользователя на вымышленный.
@pollbot — Организовывает голосование в чате с заданными вариантами ответа и считает статистику.
@hellouserbot — Бот-привратник для общего чата: приветствует новых участников, прощается с уходящими. Текст его реплик можно задать самому.
@msg_stats_bot — Считает статистику сообщений в чате, составляет топ-15 пользователей.
@controllerbot — Работает с каналами: может отправлять форматированные сообщения и создавать отложенные посты.
@metricsBot — Показывает данные из Google Analytics.
Читать также
10 каналов для копирайтеров, журналистов и редакторов в Telegram
В городе и в мире
@onetwotrip_bot — Ищет авиабилеты: предлагает самый быстрый и самый дешевый варианты. Доступны настройки желаемого времени вылета или авиакомпании.
@aviasalesofficialbot — Бот от Aviasales ищет авиабилеты и гостиницы.
@yandexmapsbot — Работает с картами Яндекса — находит и показывает объекты, сообщает уровень пробок в городе.
@caffe_bot — Находит кафе и рестораны в радиусе километра от вас. Показывает расположение, ценник, контакты, фотографии места и отзывы о нем. Работает в мобильном клиенте.
@barmap_bot — Показывает пять открытых баров в радиусе километра от вас.
@flysafebot — Бот для тех, кто боится полетов. Он расскажет, какой рейс безопаснее для вашего маршрута, можно ли спокойно сесть в тот или иной самолет.
@osmbot — OpenStreetMap-бот умеет искать места по всему миру, присылает изображения в нескольких форматах на выбор, дает контакты магазинов в городах и поселках из базы сервиса. Говорит на английском.
@cargolinkbenzinbot — Покажет заправки в радиусе пяти километров от вас. Работает по всему СНГ.
Спорт
@fitmebot — Помогает купить или продать абонемент в тренажерный зал. Работает по всей России.
@crossfitwodbot — Присылает программу кроссфит-тренировок на день, записывает результат и сравнивает с достижениями других спортсменов.
Читать также
11 чатов в Telegram для маркетологов
Прочие
@shtrafyBot — Проверяет, есть ли штрафы ГИБДД, сохраняет реквизиты автомобиля, сообщает о новых штрафах. Оплатить штраф с его помощью нельзя, но бот дает ссылку на оплату вне Telegram.
@russianpdd_bot — Экзамен на знание ПДД в виде бота. В базе 40 билетов по 20 вопросов, актуальных на 2016 год.
@mnp_bot — Определяет по номеру телефона регион и мобильного оператора.
@wmarkbot — Ставит водяные знаки на фотографии и видео. Можно настроить знак в виде текста или картинки.
@easystrongpasswordbot — Генератор паролей — и сложные, и простые составляет так, что их легко запомнить.
@radiusbot — Находит собеседников вокруг вашей локации. Минимальный радиус поиска — 10 метров, максимальная аудитория — весь мир. Бот можно использовать, например, на конференциях или лекциях, если хочется узнать мнение коллег. Для знакомства в барах сервис тоже вполне подойдет.
@RubleRobot — Подбрасывает для вас монетку — бот на случай принятия важных решений.
Хотите написать колонку для Нетологии? Читайте наши условия публикации. Чтобы быть в курсе всех новостей и читать новые статьи, присоединяйтесь к Телеграм-каналу Нетологии.
Читать также
15 каналов Telegram, полезных SMM-менеджеру
Premium
Чуи – Кинобот | Фильмы | Сериалы | Мультфильмы
Меня зовут Чуи и я помогу вам найти интересный фильм, сериал или мультфильм. ?В моей коллекции содержится более 800000Premium
DreamPower – Раздень Девушку
DreamPower бот поможет тебе раздеть любую девушку по фотографии и увидеть все её прелести ? Как снять ограничение 18+Premium
WorkBro
Самый популярный бот по поиску несложных проектов на фриланс. • Мониторит все популярные биржи по фрилансу • ПрисылаетPremium
MUSIC BOT / Музыка бот
Привет ? Я найду для тебя музыку по запросу. Отправь мне название исполнителя или трека.Premium
Накрутка подписчиков
Телеграм бот по накрутке подписчиков в социальные сети: – Instagram – YouTube – TikTok – ВКонтакте – Telegram – TwitterPremium
FindMusic
? FindMusic – лучший бот для поиска и скачивания музыки ?
CinemaKing
Бот для просмотра фильмов и сериалов в Telegram
Sound2Bot – Поиск музыки
Бот умеет: – Искать треки; – Создавать плейлисты; – Делиться плейлистами – Выгружать треки из Shazam; – Создавать
❂Lightmusic
Самый простой и удобный бот для поиска музыки.
Audiograbber
▱ Бот умеет: Искать треки ▱ Загружать музыку с профиля VK; Выгружать треки из Shazam; Создавать плейлисты;
AFILMBOT – онлайн кинотеатр
Простой и удобный бот для поиска фильмов и сериалов. Без переходов в браузер! Смотри фильмы, не покидая мессенджер.
AUDIO STORM BOT
Минималистичный, быстрый, самый лучший бот для поиска музыки, найдётся всё, просто отправь мне исполнителя или название
Freelance Агрегатор
Актуальные проекты собранные с крупных фриланс площадок и социальных сетей по вашему фильтру ключевых и минус слов.
VK Music BOX
Погрузись в мир музыки БЕЗ ОГРАНИЧЕНИЙ! 1 Ищи любимые треки 2 Создавай собственные плейлисты 3 Загружай аудиозаписи из
Account Check
Бот поможет защитить вашу цифровую личность. Проверьте аккаунт на утечки пароля по почте, логину или номеру телефона.Содержание стать
Чат ботов для каналов телеграм достаточно много и они постоянно совершенствуются и создаются новые. В данной статье мы собрали лучшие боты на русском языке с различным списком команд, которые позволяют беспрепятственно общаться и делиться информацией с другими пользователями.
Виды ботов в телеграме
Существует много различных чатов для ботов в telegram, рассмотрим несколько наиболее популярных:
- контролер – дает возможность форматировать текст и отслеживать статистику канала с возможностью удаления отложенных публикаций;
- лайкБот – создает «inline» для лайков в телеграм;
- голосовалка – используется для создания опросов;
- поллБот – выполняет опросы в группах и каналах;
- группБатлер – блокировка и удаление участников за несоблюдение правил чата;
- агент – генерирует приветственный текст для новых подписчиков;
- принт – форматирует текст, добавляет ссылки и реакции.
Принцип работы бота
Что такое боты для чата в телеграм? Данные приложения – это специальный алгоритм в telegram, который используется для ведения диалога в автоматическом режиме с реальным участником канала.
Работают такие чат для ботов в телеграм с использованием специальной системы аналитики входящих смс и подбора нужного варианта ответа из определенной базы вариантов. Искусственный интеллект в данном случае не при чем.
Обратите внимание! Бывают случаи, когда роботом в telegram может быть выбран неуместный ответ, однако, такие ситуации возникают достаточно редко. Как правило, правильно созданный робот умеет не только вести качественный диалог с участником, но и грамотно отвечать на его вопросы и проводить консультации.
Создание чат-бота в telegram
Как сделать бота для чата в telegram? Лучше всего заниматься созданием робота на персональном компьютере, поскольку данная процедура предполагает применение большого количества файлов.
Первым делом вам потребуется скачать и установить сам телеграм, а только потом заниматься созданием бота.
Рассмотрим пошаговую инструкцию, как сделать чат для bot в telegram:
- После установки telegram для канала нужно открыть приложение и поисковой строке ввести надпись «Many бот».
- Затем запускаем поиск.
- После первого появления результатов нужно нажать кнопку «Старт», которая находится в нижнем правом угле программы.
- Далее выбираем вкладку спроектировать нового чат bota.
- После этой процедуры в окошке сообщений должно появиться уведомление от телеграм, в котором содержится полная инструкция ваших дальнейших действий. Руководствоваться нужно ей.
- По этой инструкции вам понадобиться найти учетную запись «BotFather» и выбрать ссылку синего цвета с именем аккаунта.
- Следом выбираем вкладку «Send Message», которая позволяет начать диалог с выбранным пользователем.
- Далее вводим команду «Старт» и получаем список команд, которые потребуется применить при создании робота.
- Отправляем команду «новый бот» и ждем ответа.
- Следом отправляем название для робота, оно должно быть оригинальным и запоминающимся, поскольку оно отображается в поисковых запросах. Помимо этого оно должно быть написанным на английском языке с соответствующим окончанием.
- Затем обязательно копируем токен и снова переходим в «Manybot», чтобы вставить скопированный токен.
- Ждем уведомление.
- Остается только описать возможности чат робота – каким образом он будет работать, и какого его предназначение.
- Приложение для канала сделано и его можно применять.
Обратите внимание! В ответном смс от telegram вам будет прислана ссылка. Она потребуется, чтобы внести ваших пользователей из списка в приложение.
В данной статье мы рассмотрели особенности, принцип работы и алгоритм, как сделать бот для канала в телеграм. Вам остается только четко следовать изложенной в уведомлении от телеграм инструкции, и тогда трудностей с чатом не возникнет.
Боты для авторов каналов
@BotFather — регистрирует новых ботов. Пишешь название, занимаешь адрес и в ответ получаешь уникальный ключ-токен для подключения.
@manybot — создаёт ботов с кнопками. Нужно зарегистрировать бота и сообщить ключ-токен.
@vote — бот для опросов подписчиков в канале и чате.
@like — лайки и дизлайки к постам.
@gif — бот для поиска гифок.
@gifscombot — конвертация видео в гифку и наоборот.
@youtube — видео с популярного видеохостинга.
@crosser_bot — найдет пересечение подписчиков в каналах, поможет для ВП.
@telepult_bot — бот Ева, публикует посты в оптимальное время, собирает статистику и считает прибыль с рекламы. Нужно зарегистрироваться в Телепульте и добавить Еву в свой канал.
Боты для Телеграм-чатов
@combot — обязательный бот для чата, подробная статитистка активности участников.
@fovbot — модерирует чаты, удаляет ссылки, мат и спам.
@WelcomeAgentBot — приветствует новых участников чата
Каталоги каналов
@tgcat — список каталогов каналов/ботов/чатов.
@botchan — каталог каналов и ботов.
@channelslist — каталог Телеграм-каналов.
@rugram — лучшие каналы и боты в Telegram.
@CatalogTelegram — структурированный каталог.
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:>
- 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["<speech>"](messalogging.info("REPLYt%st%s" % (message['chat']['id'], response)) send_reply(response) </speech>
А потом в список команд добавляем псевдо-речь:
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?"] = ["<at>", "{date} UTC"] </at>
И будем отлавливать текст <at>:
if respo'text'] == "<at>": response[cker'] = "BQADAgADeAcAAlOx9wOjY2jpAAHq9DUC" del response['text'] </at>
Видно, что теперь структура 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’ (или любой другой метод, используемый ботом).</at></commans:>Используемые источники:
- https://netology.ru/blog/bots-45
- https://telegram.org.ru/telegram-bots/
- https://telegram-rus.ru/chat
- https://base.telepult.pro/telegram-kanaly/boty-dlya-administratorov
- https://habr.com/ru/post/262247/