Для популярного мессенджера, когда они только-только начали появляться. С тех пор их стало ещё больше, поэтому пришло время для новой подборки. В этой мы уделили внимание ботам, упрощающим различные задачи и развлекающим вас.
Удалите все погодные приложения со своего смартфона: они вам больше не нужны. Теперь прогноз можно узнавать у этого бота. Помимо актуальных сводок на сегодня, завтра и пять дней, есть автоматические уведомления. Выбираем, когда нужен прогноз, и получаем в заданное время точную погодную сводку.
Не знаете, что приготовить на ужин? Добавляйте этого бота, и у вас такой проблемы никогда не будет! MyCookBot подскажет вам рецепты и, самое главное, подберёт несколько блюд, исходя из имеющихся у вас ингредиентов. Просто напишите через запятую, что у вас есть в холодильнике, выберите рецепт из списка и следуйте пошаговой инструкции по приготовлению. Приятного аппетита!
Не хотите указывать свой email при регистрации на различных сервисах, боясь получить горы спама, а заводить новый специально под это дело лень? Так и не нужно! Используйте этого бота: он сгенерирует для вас временный ящик и отобразит его содержимое. Перейдите по ссылке активации и забудьте о ящике - через 10 минут он уже будет удалён.
Как понятно из названия, этот бот выполняет одну-единственную функцию - конвертирует в PDF документы и файлы, которые вы ему присылаете. Список поддерживаемых форматов не так велик, но всё самое необходимое есть: DOC, DOCX, ODT, TXT и JPG.
Те, кто имеет дело с иностранными языками, знают, как просто ошибиться в произношении. Этот бот поможет узнать произношение любого слова на 84 языках. Просто пишете слово или фразу и получаете в ответ голосовое сообщение. Работает в групповых чатах. Кроме уточнения произношения, можно ещё использовать бота для генерации аудио из текста. Получается, строго говоря, корявенько, но сойдёт.
Для сохранения видео с YouTube, конечно, существует , но зачем далеко ходить, если его можно скачивать прямо в Telegram? Отправляем ссылку на видео боту, выбираем качество и получаем от него прямую ссылку на видео. Просто и удобно.
Скачать понравившееся фото или видео из Instagram ещё сложнее, чем видео с YouTube, но с этим ботом такая задача займёт у вас нескольких секунд. Принцип тот же: шлём ссылку - получаем в ответ медиафайл. Работает не только с фото, но и с видео! Причём даже с YouTube.
Раз уж зашла речь медиаконтенте, то нельзя не упомянуть о . Думаете, в Telegram их можно только просматривать и искать? Как бы не так! С таким полезным ботом, как этот, их можно даже создавать! Не с нуля, конечно, а из видео с практически любых сервисов (Instagram, Vine, Facebook, Twitter, Gfycat других). Что делать, вы уже, наверное, догадались. :)
Интерактивный текстовый квест прямо в Telegram. А что? Все же помнят громкий успех Lifeline и «Марсианина» - мобильных игр, взаимодействие с которыми целиком и полностью осуществлялось через уведомления в режиме реального времени. Здесь всё примерно так же: у нас есть герой, попавший в беду, и его надо спасти, давая советы и подсказывая, что нужно делать в той или иной ситуации.
Рассказывайте в комментариях о ваших любимых ботах и о том, как к ним относитесь вообще. А также не забывайте, что у Лайфхакера есть официальный бот и два канала . Добавляйтесь и рассказывайте друзьям!
Функционал мессенджера позволяет пользоваться ботами самой различной направленности. Наряду с развлекательными сервисами в приложении имеются достаточно полезные и необычные. Например, чат, позволяющий определять владельца автомобилей. О том, как пользоваться ботом Антипаркон в Телеграмме, вы узнаете далее. Об общем принципе того, читайте отдельную статью.
Функционал
Антипаркон позволяет быстро получить информацию о владельце того или иного транспортного средства. Для того, чтобы получить необходимую информацию, вам достаточно знать регистрационный знак транспортного средства. По нему вы сможете узнать фамилию, имя и отчество хозяина, а также его мобильный.
Однако определение телефона по номеру машины в боте Антипаркон в Телеграмм – это не единственное предназначение. Также чат используется как способ обмена информацией между водителями, предупреждения о различных непредвиденных ситуациях на дороге и многое другое.
Как работает программа?
Перед тем, как установить Антипаркон бот в Телеграмм, разберемся в принципе его действия. Как говорят создатели, базу данных программы пополняют сами владельцы автомобилей. Проект был запущен весной 2015 года, поэтому база на данный момент весьма большая. С помощью Антипаркона вы сможете:
- добавить запись о себе в базу данных (Гараж);
- искать информацию по регистрационному знаку;
- сообщать об эвакуации и других ситуациях;
- общаться с водителями;
- передавать информацию о нарушениях и нарушителях.
Чтобы полноценно пользоваться сервисом, вам нужно установить бот Антипаркон в Телеграмм на Айфон или Андроид.
Инструкция по установке
Откройте приложение на своем мобильном устройстве и выполните следующие действия:
Как подключить Антипаркон бот в Телеграмм и узнать номер телефона?
Чтобы узнать телефон через программу, выполните следующие действия:
- зайдите в чат;
- нажмите на пункт «Новый номер»;
- выберите подпункт «Чужое авто»;
- введите комбинацию;
- далее вы получите всю информацию, которую владелец данного транспортного средства посчитал нужным внести в базу данных. Вы можете отправить ему сообщение, которое останется анонимным, либо связаться через мобильный телефон. Таким образом сервис дает возможность быстро получить доступ и связь с водителем того или иного авто.
Главный минус сервиса в том, что базу заполняют сами водители, поэтому эффективность и охват такой системы растет довольно медленно.
Какие ещё функции есть у @AntiParkon_bot
Во-первых, вы можете добавить свой номер, чтобы иметь возможность принять сообщение.
В разделе «Событие!» вы сможете предупредить водителя об эвакуаторе или сообщить о чём-либо другом.
Мы рассказали вам, какие возможности есть у тех, кто открыл для себя бот Антипаркон. К слову, это не единственный автоинфобот. О других подобных ботах мы рассказываем в более общей статье.
Популярный мессенджер 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.
Telegram является одним из самых популярных мессенджеров в мире. Такое положение дел образовалось благодаря его быстродействию, функциональности, удобству использования и безопасности. Приложение было разработано командой Павла Дурова.
Кроме обмена сообщения с близкими и пересылкой медиафайлов, Telegram предоставляет пользователю большой список возможностей. В первую очередь - это создание каналов с полезной информацией, на которые человек может подписаться. А одной из основных особенностей приложения является функциональность ботов. Об их возможностях и о том, как добавить бота в Telegram, повествует данная статья.
Добавление
Для начала необходимо понять, что называется ботом в приложении Телеграмм. Это специальные роботы, запрограммированные на определенные действия, с которыми пользователь взаимодействует посредством чата. В зависимости от назначения различаются их функции и возможности. У каждого имеются собственные команды, на которые он реагирует. В Telegram Messenger огромное количество таких программ. Многие ресурсы предлагают их для удобства пользователей.
Добавить аккаунт в мессенджере довольно просто. Необходимо знать его аккаунт, начинающийся с символа @. Имя вводится в поиске приложения, из предложенных вариантов нужно выбрать подходящий. Откроется окно взаимодействия с ботом, в нем присутствует кнопка Start или «Начать», если у вас установлена русская локализация. Необходимо ее нажать, тогда активируется режим диалога. У множества аккаунтов присутствует возможность управления кнопками снизу экрана, а не только посредством команд.
Прикрепление бота в группу
Раздел посвящен тому, как добавить бота в Телеграмм в группу. В данном мессенджеры группы реализованы как чаты, в которых участвует одновременно несколько пользователей. К ним можно добавлять автоматизированных роботов. Рассмотрим общий алгоритм этого действия:
- Найти необходимого аккаунта в поиске;
- Послать ему свои контактные данные;
- Пригласить его в группу.
Важный нюанс - не во всех группах присутствует возможность добавления чат-бота. Этот параметр задает создатель. Сам процесс довольно простой, занимает буквально несколько минут на ознакомление. Предназначается он для более быстрого наполнения чата контентом и пользователями.
Пишем ему /start и получаем список всех его команд.
Первая и главная - /newbot - отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя - в конце оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.
Для начала работы этого уже достаточно. Особо педантичные могут уже здесь присвоить боту аватар, описание и приветственное сообщение.
Не забудьте проверить полученный токен с помощью ссылки api.telegram.org/bot
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:
Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/
Чтобы бот получал все сообщения в группах пишем @BotFather команду /setprivacy и выключаем приватность.
Для начала в Handler добавляем обработчик:
If text == "/":
...
else:
response = CMD["
А потом в список команд добавляем псевдо-речь:
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?"] = ["
И будем отлавливать текст
If 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