Как добавить бота в телеграмм. Flibusta, Антон и прочие боты в telegram — обзор

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

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

Что такое боты в Телеграм?

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

Именно поэтому, многие компании, развивающие бизнес через интернет, используют возможности ботов по нескольким причинам:

  1. Они позволяют задействовать очередной канал коммуникации с целевой аудиторией (в России Телеграмом пользуется около 10 миллионов человек)
  2. Они быстро выполняют однообразную работу, позволяя разгрузить наемных сотрудников, тем самым экономя деньги компании;

Виды ботов в Телеграме

В Telegram используется один общий вид ботов, которых от обычных юзеров отличает только наличие приставки «bot» в имени. Сами же боты делятся на несколько направлений:

  • Чат-боты . Представляют из себя простейший чат, имитирующий общение на заданную пользователем тематику.
  • Боты-информаторы . Отдельный вид ботов, главная цель которых — информирование пользователя о тех или иных событиях (новости, мероприятия, публикации и т.п.).
  • Игровые боты. Боты, в которых можно поиграть в различные игры. По большей части, это текстовые версии разных игр времен Combats.ru
  • Боты-асистенты. Боты, разработанные различными онлайн-сервисами как дополнение к основной веб-версии.

На самом деле, четкого деления нет, т.к. некоторые боты содержат сразу несколько механик и успешно выполняют множество пользовательских задач. С их помощью можно переводить, обучаться, тестировать, искать информацию, играть в игры и даже пользоваться другими сервисами и взаимодействовать с вещами, имеющими выход в глобальную сеть (популярный нынче «интернет-вещей»). Все боты в Телеграме являются бесплатными, но в 2017 году Павлом Дуровым была анонсирована возможность настроить и платное пользование такими программами.

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

Как работает бот?

Механика работы ботов в Телеграме более понятна программистам, но мы попробуем ее вам объяснить. Итак, бот это, на самом деле, всего лишь «рупор и рычаги», через которые работает отдельная программа, написанная на различных языках программирования на вашем отдельном сервере. Поэтому правильнее было бы сказать, что через бота происходит управление такой программой.

Взаимодействие между пользователем и ботом выглядит следующим образом:

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

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

Как создать бота в Телеграм

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

  1. Напишите в командной строке /newbot (создаст нового бота).
  2. Дождитесь, пока BotFather предложит назвать ваше детище. Придумывайте любое имя, но помните, что оно должно заканчиваться на «bot».
  3. Здесь же можно добавить лицо (аватар) вашего бота и описать его.
  4. Получите уникальный токен от BotFather.
  5. Скопируйте его в любой текстовый файл и сохраните в надежном месте, чтобы он не потерялся (не надейтесь запомнить токен, поскольку это невозможно).

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

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

Что такое бот в телеграмме?

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

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

Как найти и добавить бота?

Зная, как зовут нужную вам автоматизированную функцию, ее можно вызвать и добавить к себе. Для этого в поисковой строчке вводим это самое имя, например @delorean_bot и нажимаем на него, чтобы написать ему общение. Если вы смотрели фильм «Назад в будущее», то наверняка поняли отсылочку, почему его так назвали).

  1. Когда вы начнете общение, то нажмите а кнопку «Начать» , после чего робот сам будет вас спрашивать, что вам необходимо.
  2. Но так как вы скорее всего не знаете, как конкретно работать с этой штуковиной, то наберите в строке сообщений значок слэш (/ ). После этого программа покажет вам некоторые подсказки. Но я вам рекомендую набрать команду /help . Именно здесь вам и подскажут все доступные команды, в частности, как правильно задавать формат. Для этого набираем сообщение /formats .
  3. Когда вы посмотрели все команды, то введите /start , чтобы начать пользоваться ботом. Внизу у вас появится надпись «Добавить уведомление» . Нажмите а нее.
  4. Допустим я хочу, чтобы мне напомнили 12 ноября в 15.00, что мне нужно смотреть вебинар в 17.00, тогда я пишу сообщение «Вебинар» и отправлю его. Потом меня попросят написать время напоминания, и тогда я напишу любым из предложенных способов, например «12.11.2017 15:00». Все! Программа запомнит ваш выбор и отправит вам сообщение в заданное вами время. А если разу написать «вебинар 15 часов», то он автоматически поставит напоминание на сегодня или завтра (в зависимости от того, наступило уже 15 часов или нет).
  5. Ну а если вы вдруг передумали, и не хотите, чтобы вам напомнили про конкретное время, то нажмите на «Список 1» , или тот, список, под которым у вас стоит напоминалка. А когда бот попросит ввести номер списка, то жмите 1 или 2, или 3...у вы поняли.

Примерно также работают и остальные боты. Вы просто находите его в поиске и смотрите команды, которые он умеет выполнять. Кроме того, в большинстве случаев, у них уже встроены активные кнопки.

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

Попробуйте сами поэкспериментировать с delorean_bot. Уверен, что вы останетесь довольны этой функцией. Ну а кроме всего прочего я подготовил для вас некоторые интересные боты для telegram.

@MyCookBot — рецепты любых блюд. Вам достаточно ввести общее слово и он предложит вам несколько примеров, например «Курица», «Торт» и т.д.

@imagebot — осуществляет поиск запросов. В начале пишите команду /get, а потом то, что хотите найти, например «Черный кот». Конечно, программа на английском, но она запросто ищет картинки по русским словам.

@ivideobot — позволяет . Оригинальный способ).

@Instasave_bot — никогда еще не было таким простым

@topdf_bot — конвертирует файлы в формат PDF без каких-либо заморочек (В основном работает с вордовскими документами и изображениями)

@PandaQuizBot — нечем себя занять? Пройди онлайн-викторину. Сначала вам будут задавать легкие вопросы, а затем будет становиться всё сложнее и сложнее. Наберите все 25000 очков.

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

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

@pollbot - помогает создать голосование в чате с заданными вариантами. Кроме того выдает статистику, сколько за что проголосовали.

@radiusbot - находит вам собеседника в определенном радиусе от вас. При минимальных настройках бот ищет людей в радиусе 10 метров, а при максимальном затрагивает всю планету. Вообще такая штука будет полезна на больших конверенциях, либо для знакомства в кафе3 или ресторане. Также можете обсудить фильм с незнакомцем прямо во время просмотра в кинотеатре. К сожалению, эта фишка пока не доступна для версии на компьютере, но я думаю, что это не так страшно.

Конечно, это далеко не весь список ботов telegram, но я думаю, для ознакомления вам будет достаточно. Если вам эта тема интересна, то я опубликую в ближайшее время свой топ ботов для telegram. Поверьте, здесь есть, где разгуляться.

Ну а на этом я свою сегодняшнюю статью заканчиваю. Надеюсь, что она вам понравилась и была для вас полезна. Если это действительно так, то обязательно подпишитесь на обновления моего блога, а также на мой паблик в ВК и канал в телеграмм . Спамить не буду, а вот полезной информацией вас всегда накормлю. Удачи вам. Пока-пока!

С уважением, Дмитрий Костин.

Как добавить и найти Бота в Телеграмме? Прочитав статью, ты узнаешь, как искать и подключить Ботов в Telegram. Итак, приступим!

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

Как искать и подключить ботов в Telegram

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

Можно выделить 2 самых простых и доступных способа поиска ботов в Телеграмме:

  1. Через специального робота @StoreBot
  2. Использовать каталог на любом из ресурсов в сети интернет

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


Еще более простой способ, это найти нужно робота в интернете:

  • Для этого и выбираем нужного;
  • После этого достаточно просто вбить его имя в строку поиска в приложении и запустить робота.

Вот и всё, мы получаем список новейших и самых популярных роботов (их можно себе сразу добавить), распределенных по категориям. Поиск ботов Telegram легко осуществлять внутри этого робоконтакта.

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

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

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

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

Добавление

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

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

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

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

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

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

Пишем ему /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
Добавить метки
  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то