Содержание

Боты в Телеграм — что это такое и как они работают?

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

Полное руководство по Telegram

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

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

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

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

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

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

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

Далее разберём, как они работают.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Меню бота яндекс

Меню бота яндекс

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

Навигация бота в Телеграм

Навигация бота в Телеграм

Скрытое меню

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

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

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

Скрытое меню робота

Скрытое меню робота

Как работают роботы

Как работают роботы

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

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

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

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

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

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

Зачем нужен робот

Зачем нужен робот

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

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

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

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

Не работает бот в Телеграм

Не работает бот в Телеграм

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

Подписывайтесь на обновления, чтобы не пропускать выход новых статей на блоге.

подпишись и начни получать лучшие статьи первым

Подписаться

Подписалось уже 6999 человек

iklife.ru

Документация Telegram: Боты

Боты — специальные аккаунты в Telegram, созданные для того, чтобы автоматически обрабатывать и отправлять сообщения. Пользователи могут взаимодействовать с ботами при помощи сообщений, отправляемых через обычные или групповые чаты. Логика бота контролируется при помощи HTTPS запросов к нашему API для ботов.

Общие сведения

Что могут делать боты?

Вот несколько примеров использования ботов:

  • Интеграция с другими сервисами. Например, бот может отправлять комментарии или управлять «умным домом». Или, например, отправлять вам уведомления при совершении каком-то действия или события (Примеры: GitHub Bot, Image Bot).
  • Утилиты и инструменты. Бот может отображать погоду, переводить тексты или предупреждать о предстоящих событиях по вашему запросу (Например: бот опросов).
  • Одно- и многопользовательские игры. Бот может поиграть с вами в шашки или шахматы, проводить викторины и так далее. (Пример: Trivia bot).
  • Социальные сервисы. Бот может находить вам собеседника, основываясь на ваших общих интересах и увлечениях. (Пример: HotOrBot).
  • Все, что вам захочется. Бота можно запрограммировать для чего угодно. Разве что посуду они помыть не смогут.

Как работают боты?

Как уже было сказано ранее, роботы — особые аккаунты, которые не требуют номера телефона при создании. По сути, эти аккаунты играют роль интерфейса к вашему сервису, который работает на удалённом сервере.

Самое интересное в роботах это то, что для их создания вам не нужно изучать низкоуровневые методы работы с MTProto и шифрованием — общение с роботом организовано при помощи обычного HTTPS интерфейса с упрощёнными методами Telegram API. Мы назвали его Bot API.

Примечание

Рекомендуем также ознакомиться с подробным описанием Bot API.

Как создать бота?

Для этого есть… Бот. Просто напишите пользователю @BotFather и следуйте его инструкциям. Как только вы создали бота и получили свой ключ (токен) авторизации, переходите в раздел документации Bot API, чтобы начать настраивать вашего бота.

Чем бот отличается от обычного аккаунта?

  • У роботов нет статусов «онлайн» и «был в сети», вместо этого отображается надпись «бот».
  • Для ботов выделено ограниченное место на серверах — все сообщения будут удалены по прошествии определённого срока после обработки.
  • Боты не могут сами начать общение с пользователем. Пользователь должен либо добавить робота в группу, либо первым начать с ним диалог. Для этого можно использовать ссылки вида t.me/<bot_username> или поиск по имени пользователя.
  • Имя пользователя у робота должно заканчиваться на «bot» (например, @controllerbot).
  • При добавлении в конференцию, по умолчанию робот не получает всех сообщений (см. режим приватности).
  • Роботы никогда не спят, не едят и не жалуются (если только вы не запрограммируете их на обратное).

Суперспособности

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

Инлайн-режим

Пользователи могут общаться с вашим ботом напрямую из поля ввода сообщения — из любого чата или группы. Для этого нужно всего лишь набрать имя пользователя вашего бота и запрос для поиска. Получив запрос, бот может возвратить какие-либо результаты. Как только пользователь нажмёт на один из них, он сразу же отправится в чат. Таким образом можно запрашивать контент от бота в чатах, группах или каналах.

Подробнее о встроенном режиме в блоге »

Игры

С помощью ботов пользователи могут играть в HTML5-игры в группах или приватных чатах. Игровая платформа Telegram поможет составить таблицу рекордов и оповещать пользователей об изменении рейтинга.

Под капотом у игр — HTML5, поэтому вы можете создавать игры любой сложности. На данный момент командой Telegram созданы несколько демо-игр:

Подробнее об играх в Telegram »

Клавиатуры

Одна из самых необычных возможностей Bot API — кастомизированные клавиатуры. При передаче сервером ответа есть возможность передать команду на отображение специальной клавиатуры с предустановленными вариантами ответа (см. ReplyKeyboardMarkup). Клиент Telegram, получив сообщение, отобразит пользователю вашу клавиатуру. Нажатие на клавишу сразу же отправит на сервер соответствующую команду. Таким образом можно значительно упростить взаимодействие робота с пользователем. На данный момент для отображения на клавише могут использоваться эмодзи и текст. Вот несколько примеров таких клавиатур:

За более подробной информацией обращайтесь к описанию метода sendMessage.

Команды

Команды представляют собой более гибкий способ общения с ботом. Рекомендуется следующий синтаксис:

/команда [необязательный] [аргумент]

Команда должна начинаться с символа косой черты «/» и не может быть длиннее 32 символов. Команды могут состоять из букв латинского алфавита, цифр и подчёркивания. Несколько примеров:

/get_messages_stats
/set_timer 10min Alarm!
/get_timezone London, UK

Сообщения, начинающиеся с косой черты, будут всегда доставляться боту (точно также, как и при ответе на его сообщения и на &commat;упоминания бота в чате). Приложения Telegram будут:

  • Предлагать список поддерживаемых команд с их описанием, когда пользователь введёт символ косой черты «/» (чтобы этот пункт работал, вам необходимо задать описание команд у @BotFather). Нажатие на описание приведёт к отправке этой команды.
  • Показывать кнопку (/) в поле ввода текста во всех чатах с ботами. Нажатие на эту кнопку отобразит список доступных команд.
  • Подсвечивать /команды в сообщениях. При нажатии на такую подсвеченную команду, она будет сразу же отправлена боту.

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

/start@TriviaBot
/start@ApocalypseBot

Это происходит автоматически, если вы выбираете команду из списка доступных.

Глобальные команды

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

  • /start — начинает общение с пользователем (например, отправляет приветственное сообщение). В эту команду также можно передавать дополнительные аргументы (см. внешнее связывание).
  • /help — отображает сообщение с помощью по командам. Оно может представлять собой короткое сообщение о вашем боте и список доступных команд.
  • /settings — (по возможности) возвращает список возможных настроек и команды для их изменения.

При попытке начать общение с роботом, пользователь увидит кнопку СТАРТ. На странице профиля бота также будут доступны ссылки Помощь и Настройки.

Режим приватности

Ботов часто добавляют в группы, чтобы получать различную информацию — новости, уведомления и т.д. Однако, при добавлении бота вы наверняка спрашивали себя: «А что если этот маленький засранец пересылает всю групповую переписку куда-то »налево“?» Именно поэтому у роботов есть режимы приватности.

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

  • Сообщения, начинающиеся с символа косой черты «/» (см. раздел Команды)
  • Сообщения, содержащие @упоминание бота
  • Ответы на сообщения бота
  • Служебные сообщения (о добавлении пользователя, смены изображения группы и т.д.)

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

Режим приватности включен по умолчанию во всех ботах. Он может быть выключен — тогда бот начнёт получать все сообщения, как и обычный пользователь. Всем участникам конференции виден текущий статус режима приватности в списке участников группы.

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

Внешнее связывание

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

У каждого робота есть ссылка, при помощи которой можно начать с ним диалог — https://t.me/<имя бота>. К этой ссылке можно добавить параметры *start или startgroup со значением длиной до 64 символов. Пример:

https://t.me/triviabot?startgroup=test

Допустимо использование символов A-Z, a-z, 0-9, _ и -. Мы рекомендуем использовать base64url для кодирования параметров.

Переход по ссылке с параметром start начнет чат с ботом, при этом в поле ввода текста будет отображаться кнопка СТАРТ. При переходе по ссылке с параметром startgroup пользователю будет предложено добавить бота в одну из доступных групп. Как только пользователь подтвердит своё действие (нажмёт на кнопку СТАРТ или выберет группу), бот получит сообщение следующего формата:

/start PAYLOAD

В PAYLOAD будет значение параметра start или startgroup, который был передан в ссылке.

Пример реализации внешнего связывания

Предположим, сайт example.com хочет отправлять пользователю уведомления с помощью Telegram-бота. Ниже приведено описание последовательности действий для реализации отправки уведомлений пользователю с ID 123.

  1. Создайте бота с любым именем, например, @ExampleComBot
  2. Настройте вебхук для входящих сообщений
  3. Сгенерируйте ключ достаточной длины, напр. $memcache_key = 'TESTKEY'
  4. Запишите значение 123 с ключом $memcache_key в Memcache на 3600 секунд (один час)
  5. Отправьте пользователю ссылку https://t.me/ExampleComBot?start=TESTKEY
  6. Настройте обработчик веб-хуков так, чтобы он запрашивал в Memcached значение входящего параметра каждый раз, когда приходит сообщение, начинающееся со /start. Если ключ существует, записываем chat_id, переданный в веб-хук, в telegram_chat_id для пользователя 123. Удаляем ключ из Memcache.
  7. Теперь, если мы хотим отправить сообщение пользователю 123, сначала проверяем telegram_chat_id. Если оно существует, используем метод sendMessage, чтобы отправить пользователю сообщение.

BotFather

BotFather — один бот, чтобы править всеми. При помощи него меняются настройки у существующих ботов и создаются новые.

Создание бота

Напишите команду /newbot, чтобы создать нового робота. BotFather спросит у вас имя нового бота и предложит придумать username.

Имя (name) будет отображаться в контактах и чатах.

Username — короткое имя на латинице, которое используется для упоминаний бота и в ссылках на профиль в telegram.me. Username должен состоять из букв латинского алфавита, подчёркиваний и цифр и быть длиной от 5 до 32 символов. Также имя пользователя обязательно должно заканчиваться на «bot», например: «tetris_bot» или «TetrisBot».

Ключ (токен) это набор символов вида 110201543:AAHdqTcvCh2vGWJxfSeofSAs0K5PALDsaw, который нужен, чтобы получать и отправлять сообщения с помощью Bot API.

Создание токена

Если вы потеряли или утратили доступ к токену, отправьте команду /token, чтобы сгенерировать новый.

Настройки

  • /setname — Изменить имя робота.
  • /setdescription — Изменить описание робота, представляющее собой короткий текст с описанием бота. Пользователи увидят его в самом начале, под заголовком «Что умеет этот робот?».
  • /setabouttext — Изменить информацию о боте, ещё более короткий текст, отображающийся в профиле бота. Ещё, если кто-то поделится вашим ботом, то вместе со ссылкой на него отправится этот текст.
  • /setuserpic — Изменить аватарку бота. Картинки — всегда хорошо.
  • /setcommands — Изменить список команд бота. Каждая команда состоит из собственно командного слова, начинающегося с символа косой черты («/») и короткого описания. Пользователи увидят список команд при вводе символа «/».
  • /setjoingroups — Определяет, можно ли добавлять вашего бота в группы.
  • /setprivacy — Определяет, все ли сообщения видит ваш бот в группах. В выключенном состоянии роботу будут отправляться все сообщения.
  • /deletebot — Удалить бота и его имя пользователя.
Совет

Пожалуйста, имейте в виду, что для применения настроек на сервере, возможно, потребуется некоторое время.

tlgrm.ru

Боты Телеграм — Инструкция и описание телеграмм ботов

Пользуясь мессенджером Телеграмм, вы, наверняка, слышали о наличии так называемых «ботов» или «bots». Так, например, в онлайн веб-версии Telegram, который вы можете найти на сайте Webtelegram.net, даже есть отдельная вкладка, предназначенная для таких ботов. Итак, в данной статье и пойдет речь о ботах в телеграмме. Мы расскажем что подразумевается под этим термином, для чего они нужны, где и как их можно найти, а также о том, как ими пользоваться.
Что такое «Бот» в Телеграмм?

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

      Мессенджер Telegram не стал исключением. Здесь под термином боты «боты» понимается специально разрабатываемые в авторежиме аккаунты, написанные при помощи @manybot или программирования на языке Pythona, которые способны выполнять команды через получение или отправку команд текстовым способом. Боты в Телеграмм создаются разработчиками через интеграцию с API, которые выдаются на @botFather. При создании бота через @Manybot программная часть файлов хранится при этом на серверах мессенджера, тогда как при собственной разработке бота для файлов Вам необходимо иметь свой сервер — хостинг.

    Проще говоря, «боты» в Telegram online — это одна из разновидностей чат-ботов. Как следует, в названиях всех ботов должно присутствовать слово «bot». По сути дела, боты – это те же пользовательские аккаунты, но которыми вместо людей управляют программы.


Для чего нужны «боты» в Телеграмм?
 
     «Боты» можно назвать маленькими умными помощниками обычных пользователей онлайн Телеграмм. Боты в мессенджере предназначены для выполнения различных действий, к примеру они могут переводить и комментировать, обучать и тестировать, играть и развлекать, искать и находить, спрашивать и отвечать, взаимодействовать с датчиками и вещами, подключенными к интернету, и многое другое. Кроме того, ботов в Телеграмм можно «Добавить в группу» (Add To Group), в которой вы является непосредственным участником, либо «Поделиться» (Share) ими со своими друзьями со списка ваших контактов.

     Стоит отметить, что основное взаимодействие бота с пользователями осуществляется через систему вопрос-ответ, а также через поручения команд в созданном меню бота, к которому доступ получается после нажатия на кнопку «/Старт» (/start).

Как я могу найти и начать пользоваться «Ботами» В Телеграмм?

    Пользоваться ботами в Телеграм несложно, для этого не обязательно иметь особые навыки. Для этого достаточно выбрать необходимого вам бота из специального каталога в Телеграмм и перейти по ссылке, или также можно найти необходимого вам бота в строке поиска через меню мессенджера и начать взаимодействовать с ним при помощи нажатия кнопки /start. После нажатия кнопки /start, бот пришлет вам информацию о себе, инструкции по работе с ним, а также список команд или выведет доступные команды-кнопки на экран. Так, например, в Телеграмм вы можете найти бот под названием @cbr_bot — это робот, отправляющий свежие курсы валют, установленные Центробанком России, данный бот также умеет конвертировать рубли в иностранную валюту и наоборот. Также вы можете найти бот @ytranslatebot, который может перевести ваши сообщения на любой необходимый вам язык.


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

webtelegram.net

Как создавать ботов в Telegram / Habr

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

Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы к Telegram Bot API. Причем API довольное простое — бот обращается на определенный URL с параметрами, а Telegram отвечает JSON объектом.

Рассмотрим API на примере создания тривиального бота:

1. Регистрация


Прежде чем начинать разработку, бота необходимо зарегистрировать и получить его уникальный id, являющийся одновременно и токеном. Для этого в Telegram существует специальный бот — @BotFather.

Пишем ему /start и получаем список всех его команд.
Первая и главная — /newbot — отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя — оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.

Для начала работы этого уже достаточно. Особо педантичные могут уже здесь присвоить боту аватар, описание и приветственное сообщение.

Не забудьте проверить полученный токен с помощью ссылки api.telegram.org/bot<TOKEN>/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[0] == '/':
                        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: Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/<command>) (https://core.telegram.org/bots#privacy-mode)

  • All messages that start with a slash ‘/’ (see Commands above)
  • Messages that mention 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>"](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)[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_sticker>", "{date} UTC"]

И будем отлавливать текст :
if response['text'] == "<at_sticker>":
        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’ (или любой другой метод, используемый ботом).

habr.com

Как пользоваться ботами в телеграмме и что это такое?

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

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

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

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

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

Зная, как зовут нужную вам автоматизированную функцию, ее можно вызвать и добавить к себе. Для этого в поисковой строчке вводим это самое имя, например @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. Поверьте, здесь есть, где разгуляться.

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

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

koskomp.ru

Чат бот Телеграм — виды и принципы создания бота

Ссылка на телеграм не работает? И вы ищите как сделать рабочую ссылку? Прочитайте нашу статью: Как сделать ссылку на Telegram!

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

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

Существует много различных чатов для ботов в telegram, рассмотрим несколько наиболее популярных:

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

Виды ботов

Принцип работы бота

Что такое боты для чата в телеграм? Данные приложения – это специальный алгоритм в telegram, который используется для ведения диалога в автоматическом режиме с реальным участником канала.

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

Обратите внимание! Бывают случаи, когда роботом в telegram может быть выбран неуместный ответ, однако, такие ситуации возникают достаточно редко. Как правило, правильно созданный робот умеет не только вести качественный диалог с участником, но и грамотно отвечать на его вопросы и проводить консультации.

Создание чат-бота в telegram

Как сделать бота для чата в telegram? Лучше всего заниматься созданием робота на персональном компьютере, поскольку данная процедура предполагает применение большого количества файлов.

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

Рассмотрим пошаговую инструкцию, как сделать чат для bot в telegram:

  1. После установки telegram для канала нужно открыть приложение и поисковой строке ввести надпись «Many бот».
  2. Затем запускаем поиск.
  3. После первого появления результатов нужно нажать кнопку «Старт», которая находится в нижнем правом угле программы.
  4. Далее выбираем вкладку спроектировать нового чат bota.
  5. После этой процедуры в окошке сообщений должно появиться уведомление от телеграм, в котором содержится полная инструкция ваших дальнейших действий. Руководствоваться нужно ей.
  6. По этой инструкции вам понадобиться найти учетную запись «BotFather» и выбрать ссылку синего цвета с именем аккаунта.
  7. Следом выбираем вкладку «Send Message», которая позволяет начать диалог с выбранным пользователем.
  8. Далее вводим команду «Старт» и получаем список команд, которые потребуется применить при создании робота.
  9. Отправляем команду «новый бот» и ждем ответа.
  10. Следом отправляем название для робота, оно должно быть оригинальным и запоминающимся, поскольку оно отображается в поисковых запросах. Помимо этого оно должно быть написанным на английском языке с соответствующим окончанием.
  11. Затем обязательно копируем токен и снова переходим в «Manybot», чтобы вставить скопированный токен.
  12. Ждем уведомление.
  13. Остается только описать возможности чат робота – каким образом он будет работать, и какого его предназначение.
  14. Приложение для канала сделано и его можно применять.

Обратите внимание! В ответном смс от telegram вам будет прислана ссылка. Она потребуется, чтобы внести ваших пользователей из списка в приложение.

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

telegram-rus.ru

что это такое, как работает, как его создать и какие популярные боты существуют

Делаем вашу страницу интересной и стимулируем подписчиков почаще заглядывать к вам на страницу или на сайт за покупками

Мы выпустили новую книгу «Контент-маркетинг в социальных сетях: Как засесть в голову подписчиков и влюбить их в свой бренд».

Подпишись на рассылку и получи книгу в подарок!

Боты — это сторонние утилиты, которые запускаются внутри приложения Telegram. По сути это учетные записи, которыми управляют не люди, а программное обеспечение.

Больше видео на нашем канале — изучайте интернет-маркетинг с SEMANTICA

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

Одно из последних нововведений мессенджера — это боты. Сама платформа Telegram наиболее интересна именно потому, что ее боты имеют более богатый пользовательский интерфейс (по сравнению с платформой Facebook или Вконтакте).

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

Как они работают

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

Вы общаетесь с серверами с помощью простого HTTPS-интерфейса, который представляет собой упрощенную версию API Telegram. По другому этот интерфейс можно назвать программным каталогом или бот-алгоритмом. Подробнее о том, как работает бот в телеграмм можно узнать, став разработчиком программного обеспечения. Новые bot-утилиты создаются с помощью специальной утилиты @BotFather, который значительно упрощает процесс девелопмента.

Для чего они нужны

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

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

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

Для чего используются боты в Телеграм

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

Условно все bot-утилиты можно разделить на несколько функциональных подгрупп, каждой из которых найдется свое применение:

  • Интеграция с другими службами. Бот может обогащать чаты Telegram содержимым из внешних сервисов (@Gmail, @GIF, @IMDB, @YouTube).
  • Прием платежей от пользователей Telegram. У встроенных программ есть возможность предлагать платные услуги или работать как виртуальный магазин (@DemoShopBot).
  • Создание собственных инструментов. Бот-программа может предоставлять вам уведомления, прогнозы погоды, переводы, форматирование документов или другие услуги (@Markdownbot, @Stickerbot, @Votebot, @Likebot).
  • Создание игр. bot-утилита может предложить богатый интерфейс HTML5, от простых аркад и головоломок до 3D-шутеров и игр в режиме реального времени (@GameBot, @Gamee).
  • Построение социальных сетей внутри Telegram. Искусственный интеллект может связывать людей, ищущих партнеров по беседе, исходя из общих интересов (@HotOrBot).

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

Как и где найти бота в телеграмме

  • Для поиска можно воспользоваться официальным сайтом Telegram, на котором существует специальный раздел «Боты». Там перечислены наиболее полезные и интересные утилиты приложения.
  • Используйте другие информационные ресурсы, позволяющие найти интересных и уникальных ботов. В этом могут помочь многочисленные подборки на YouTube.
  • Вы также можете воспользоваться @Storebot, который осуществляет поиск бота в телеграмм прямо в приложении. В его функционал входят интересные и полезные команды, облегчающие поиск.

Как пользоваться и общаться с ботом в телеграмме.

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

  1. Отправлять сообщения им команды, открывая чат с ними или добавляя их в группы. Это полезно для чатов-ботов или новостных ботов, таких как официальный бот @TechCrunch.
  2. Отправлять запросы непосредственно из поля ввода, введя имя пользователя @bot и запрос. Это позволяет отправлять контент из встроенных ботов непосредственно в любой чат, группу или канал.

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

@YouTube Bot

Введите @youtube, оставьте пробел и введите название видео, если вы хотите отправить интересующий вас ролик, не отрываясь от Telegram.

Поиск гифок @GIF

GIF работают inline, поэтому все, что вам нужно сделать, это набрать @GIF, оставить пробел и ввести реакцию, которую вы хотите увидеть. Например, при вводе гневного смайлика, появится ряд gif анимаций, иллюстрирующих эту эмоцию. Прокрутите страницу, чтобы найти лучшую.

@Weatherman bot

Просто добавьте его в свой список контактов, и вы всегда будете в курсе того, что происходит с погодой в вашем городе.

@Stickers

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

Развитие Telegram не стоит на месте, технология бот-шеринга развивается и приобретает все большую популярность. Это наиболее удобный и массовый способ выполнять широкий спектр задач – от пиара до управления домашней техникой. Уже сейчас круг задач, невыполнимый для бота стремительно сужается, а в ближайшем будущем таких «невозможных» поручений не станет совсем.

semantica.in