Как добавить и подключить бота в телеграмме. Особенности использования робота Saytextbot в приложении «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
Добавить метки

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

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

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

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

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


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

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

Популярный мессенджер 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.

Здравствуйте, дорогие читатели. У меня для вас отличная новость. Наконец-то дошли руки рассказать про то, что такое боты в Телеграм. Расскажу, зачем они нужны, как их искать и как правильно использовать. Как всегда, в описании будет минимум воды и максимум пользы.

Бот — что это такое и что он умеет?

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

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

На сегодня роботы Телеграм могут:

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

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

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

Принцип очень прост. Вы находите бота, пишете ему текстовое сообщение (команду) и через доли секунды получаете ответ.

Достоинства:

  • Круглосуточная помощь — по сути, их работу остановит только авария на сервере, что случается крайне редко.
  • Удобство использования — большинство команд находится в меню бота.
  • Ответы приходят за несколько секунд.
  • Для работы используются ресурсы сторонних серверов, так что мощности вашего устройства не задействованы.
  • Безопасность. Многие переживают за сохранность своих данных, так вот можете не беспокоиться. Боты никак не украдут ваши данные. Они их просто не видят. Всё, что им доступно, — это текстовые команды из чата.
  • Установка дополнительных программ не требуется.

Теперь о том, как найти бота в Телеграмме.

Ищем своего бота

Поиск бота ничем не отличается от . Помните, о них я писал немногим раньше. Основные варианты поиска:

  • Через поисковики найти подборки популярных ботов

Выборки чаще всего субъективны, следует внимательно прочитать описание. Кстати, я прямо сейчас готовлю большую подборку, разбитую по категориям. Не пропустите.

  • По поиску внутри Телеграм

Для этого нужно знать точное имя и ввести его в строку поиска. Имя обязательно заканчивается на bot и начинается с собачки — @.

  • Помощь друга

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

  • Воспользоваться официальным магазином — storebot.me .
  • Если бота с нужными функциями вы не нашли, то можете .

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

Давайте на живых примерах рассмотрим варианты использования.

Общая схема: найти бота — нажать start/начать — ввести команду — получить ответ.

Думаю всем уже понятно, что бот — это программа, которая понимает определённые фразы. Они запускают цепочку действий, итогом является решённая задача.

Скриншоты будут из версии для ПК. В мобильной и онлайн-версиях всё то же самое.

Боты с готовым меню

В большинстве случаев бот имеет собственное меню. Вот пример Яндекс-бота.

Вот ещё вариант меню у бота популярного сайта AdMe.

Скрытое меню

У некоторых роботов меню скрыто. Чтобы его вызвать, необходимо нажать «/» и появится список команд.

Значок слэш является обязательным для ввода команд.

Смотрите пример.

Нужно знать команды

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

Универсальные команды

Их понимает большинство онлайн-помощников:

  • /start — начало,
  • /help — помощь,
  • /settings — настройки.

Иногда боты понимают команды на русском, можно просто догадаться по смыслу. Вот образец — знаменитый робот Антон подрабатывает ещё и в Гидрометцентре. Если его спросить «Погода Воронеж», он тут же сообщит прогноз.

Если бот молчит

Иногда можно найти бота, который не отвечает. Что ни спроси, он будет молчать, как партизан. В чём причина?

  1. Так как они находятся на стороннем ресурсе, значит основная причина в проблемах сервера. Может быть временный сбой или полный отказ сервера.
  2. Также может быть, что неопытный программист ошибся при написании кода.
  3. Третья причина — вы вводите команду, которую бот не понимает. В таком случае, Гугл вам в помощь.

Сам столкнулся с проблемой — не захотел работать популярный @nationalgeographic_bot, он должен показывать лучшие фотки знаменитого журнала. Но, как я ни старался, команду подобрать не смог. Может у вас получится? Сообщите, пожалуйста.

На этом заканчиваю. Если есть вопросы, напишите их, пожалуйста, в комментариях.

Чтобы не пропускать выход новых статей на блоге.

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

Функционал

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

Как работает программа?

Перед тем, как установить Антипаркон бот в Телеграмм, разберемся в принципе его действия. Как говорят создатели, базу данных программы пополняют сами владельцы автомобилей. Проект был запущен весной 2015 года, поэтому база на данный момент весьма большая. С помощью Антипаркона вы сможете:

  • добавить запись о себе в базу данных (Гараж);
  • искать информацию по регистрационному знаку;
  • сообщать об эвакуации и других ситуациях;
  • общаться с водителями;
  • передавать информацию о нарушениях и нарушителях.

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

Инструкция по установке

Откройте приложение на своем мобильном устройстве и выполните следующие действия:


Как подключить Антипаркон бот в Телеграмм и узнать номер телефона?

Чтобы узнать телефон через программу, выполните следующие действия:

  • зайдите в чат;
  • нажмите на пункт «Новый номер»;
  • выберите подпункт «Чужое авто»;
  • введите комбинацию;
  • далее вы получите всю информацию, которую владелец данного транспортного средства посчитал нужным внести в базу данных. Вы можете отправить ему сообщение, которое останется анонимным, либо связаться через мобильный телефон. Таким образом сервис дает возможность быстро получить доступ и связь с водителем того или иного авто.

Главный минус сервиса в том, что базу заполняют сами водители, поэтому эффективность и охват такой системы растет довольно медленно.

Какие ещё функции есть у @AntiParkon_bot

Во-первых, вы можете добавить свой номер, чтобы иметь возможность принять сообщение.



В разделе «Событие!» вы сможете предупредить водителя об эвакуаторе или сообщить о чём-либо другом.


Мы рассказали вам, какие возможности есть у тех, кто открыл для себя бот Антипаркон. К слову, это не единственный автоинфобот. О других подобных ботах мы рассказываем в более общей статье.