Как работают боты в Телеграм
О мессенджере Телеграм вы, наверняка, уже слышали или даже пользуетесь. А вот, что за боты там обитают, вам может быть не совсем понятно. Постараемся осветить этот вопрос простым и доступным для неискушенных пользователей языком.
Боты в Telegram — программные «роботы», которые взаимодействуют с живыми людьми и выполняют заложенные в них функции. Например, сообщают прогноз погоды, курс валюты, ищут информацию через поисковые системы или рассказывают анекдоты.
Условная классификация ботов в Телеграме
Все боты в этом мессенджере могут быть условно разделены на 5 категорий:
Перед ними стоит задача информировать своих подписчиков о каких-либо событиях, мероприятиях, новых публикациях и т. д.
Разрабатываются с целью вспомогательной помощи по шаблонным вопросам. Например, чтобы менеджер не отвечал по 100 раз на одни и те же вопросы, заданные разными людьми, создается бот-ассистент, который консультирует по данным тематикам.
В основном создаются, чтобы имитировать живое общение. Допустим, кому-то скучно, и он хочет с кем-нибудь пообщаться, «убить» время. Этот человек может написать боту «Привет», спросить, как у него дела и всё в таком роде. Программа будет отвечать ему, как живой собеседник. Конечно, при условии, что эти вопросы предусмотрены разработчиком. В противном случае, бот ответит что-то вроде «Извините, я вас не понял».
Бизнес использует таких ботов, чтобы автоматизировать взаимодействие с клиентами по типовым вопросам и снизить нагрузку на сотрудников. Об этом расскажем ниже.
Смысл таких ботов можно понять из названия. Это «роботы», которые дают пользователям возможность сыграть в одну или несколько игр.
- Универсальные.
Сочетают в себе множество различных функций. Могут информировать пользователей, отвечать на их вопросы, вести диалог и многое другое. Подобных ботов нечасто можно встретить, так как их не так просто создать и отладить.
Как взаимодействовать с ботами в Телеграме
Сначала бота нужно найти в самом мессенджере. Это можно сделать 2 способами: либо перейти по готовой ссылке, если вы ее увидели на каком-то сайте или вам ее скинули, либо вбить название бота в поиск Telegram. Например, @RubBot.
После этого кликаем по найденному результату и жмем на кнопку «Запустить» в чате.
Сразу после этого бот начнет свою работу и предложит вам выполнить целевое действие: задать вопрос, выбрать нужный пункт меню, написать определенное слово и т. д.
В нашем случае, мы должны кликнуть по одному из трех пунктов меню, чтобы узнать биржевой курс доллара, евро или нефти Brent.
После нажатия на кнопку бот пришлет соответствующую информацию прямо в чат.
Меню есть у многих ботов, так как это самый удобный вариант для пользователей. Однако встречаются такие «роботы», взаимодействие с которыми немного сложнее, так как нет визуального меню. Чтобы пользоваться ботом, нужно вводить определенные команды. Чтобы узнать их полный список, наберите в чате значок слеша /.
Когда появится список команд, кликните по любой из них левой кнопкой мыши или введите вручную через чат и отправьте нажатием Enter. Таким образом, вы начнете взаимодействовать с ботом, и он выполнит те функции, которые соответствуют командам.
Существует несколько стандартных команд, которыми можно пользоваться почти везде:
-
/start — запускает бота.
-
/settings — открывает настройки бота.
-
/help — активирует инструкцию по использованию бота.
Нередки случаи, когда бот вообще не откликается ни на какие команды. Это означает, что он не работает по причине ошибки в коде, на стороне сервера или его просто забросили.
Можно ли найти применение Телеграм-ботам в бизнесе
Боты в Телеграме постепенно переходят в высшую лигу и становятся частью электронной коммерции. Уже сейчас есть сервисы, которые позволяют создавать ботов, выполняющих функции интернет-магазина или консультанта.
С помощью такого бота вы можете завоевать большую часть мобильной аудитории. Согласитесь, что гораздо удобнее и быстрее заказать товар или услугу через мессенджер, кликнув по нескольким кнопкам в меню, чем бродить по сайту и заполнять формы.
Для бизнеса боты могут быть полезны не только в качестве альтернативных точек продаж. К примеру, у вас есть свой интернет-магазин и штат консультантов. Каждый день им приходится отвечать на сотни вопросов, 80% из которых однотипные. На содержание всех этих специалистов уходит много средств. Как оптимизировать расходы и автоматизировать консалтинг? Разработать «умного» бота в Telegram, который будет запрограммирован отвечать на все шаблонные вопросы, а если вдруг столкнется с нестандартной формулировкой, подключит к чату живого оператора.
Таким образом, вы можете оставить всего одного консультанта, снизив нагрузку и сэкономив при помощи «робота», созданного для Телеграма.
Где находить готовых ботов для Телеграма
Существует множество каталогов, в которых опубликованы ссылки и краткие описания ботов для Телеграма. Рассмотрим некоторые из них.
Сборник ботов, которые рассортированы по категориям.
Каталог «роботов» по категориям и с функцией поиска.
Единый список ботов.
Чтобы запустить нужный бот у себя в мессенджере, скопируйте его название после @ и вставьте в поиск Телеграма. Либо кликните по названию бота в каталоге и затем воспользуйтесь кнопкой добавления, как на скриншоте ниже.
Мы рассказали, что такое боты в Телеграме, для чего они нужны, как ими пользоваться, можно ли для них найти применение в бизнесе и где находить готовые решения. Если вы хотите создать собственного бота, советуем вам нанять программиста или воспользоваться инструкцией, которую мы публиковали ранее в нашем блоге.
Боты в Telegram что это такое и как они работают
Что такое боты в Telegram?
Боты – это специальные программы, выполняющие различные функции и упрощающие жизнь их пользователей. Написанные для платформы Telegram, они предназначены для выполнения самых разных функций: от получения новостей до поиска информации и даже торговли акциями. Главное задачей бота является автоматический ответ после введенной ему пользователем команды. При этом, работая непосредственно через интерфейса Telegram, программа имитирует действия живого юзера, за счет чего пользование таким ботом гораздо удобно и понятно.
Именно поэтому, многие компании, развивающие бизнес через интернет, используют возможности ботов по нескольким причинам:
- Они позволяют задействовать очередной канал коммуникации с целевой аудиторией (в России Телеграмом пользуется около 10 миллионов человек).
- Они быстро выполняют однообразную работу, позволяя разгрузить наемных сотрудников, тем самым экономя деньги компании.
Желаете попробовать бота в своей компании или узнать, какую пользу он может вам принести? Напишите нам об этом и мы поможем вам с этим.
Виды ботов в Telegram
В Telegram используется один общий вид ботов, которых от обычных юзеров отличает только наличие приставки «bot» в имени. Сами же боты делятся на несколько направлений:
- Чат-боты. Представляют из себя простейший чат, имитирующий общение на заданную пользователем тематику.
- Боты-информаторы. Отдельный вид ботов, главная цель которых — информирование пользователя о тех или иных событиях (новости, мероприятия, публикации и т.п.).
- Игровые боты. Боты, в которых можно поиграть в различные игры. По большей части, это текстовые версии разных игр времен Combats.ru
- Боты-асистенты. Боты, разработанные различными онлайн-сервисами как дополнение к основной веб-версии.
На самом деле, четкого деления нет, т.к. некоторые боты содержат сразу несколько механик и успешно выполняют множество пользовательских задач. С их помощью можно переводить, обучаться, тестировать, искать информацию, играть в игры и даже пользоваться другими сервисами и взаимодействовать с вещами, имеющими выход в глобальную сеть (популярный нынче «интернет-вещей»). Все боты в Телеграме являются бесплатными, но в 2017 году Павлом Дуровым была анонсирована возможность настроить и платное пользование такими программами.
Благодаря этому, боты стали карманными помощниками, пользоваться которыми можно даже не покидая мессенджер. Они предоставляют возможность решать элементарные задачи при помощи мгновенных команд, при все эти программы не нуждаются в установке и не занимают отдельное место в памяти вашего девайса.
Как они работают
Алгоритм работы бот-утилит достаточно прост. Сообщения, команды и запросы, отправленные пользователями, передаются на программное обеспечение, запущенное на серверах разработчиков. Посреднический анонимный сервер Telegram обрабатывает шифрование и осуществляет обратную связь между утилитой и пользователем.
Взаимодействие между пользователем и ботом выглядит следующим образом:
Пользователь бота отдает ему команду -> Бот передает команду на сервер -> Программа на сервере обрабатывает полученный от бота запрос -> Сервер отдает ответ боту -> Бот выводит ответ на экран приложения пользователю.
И этот цикл повторяется раз за разом, когда вы нажимаете на кнопки и взаимодействуете с любым телеграм-ботом.
Вы общаетесь с серверами с помощью простого HTTPS-интерфейса, который представляет собой упрощенную версию API Telegram. По другому этот интерфейс можно назвать программным каталогом или бот-алгоритмом. Подробнее о том, как работает бот в телеграмм можно узнать, став разработчиком программного обеспечения. Новые bot-утилиты создаются с помощью специальной утилиты @BotFather, который значительно упрощает процесс девелопмента.
Документация 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
Сообщения, начинающиеся с косой черты, будут всегда доставляться боту (точно также, как и при ответе на его сообщения и на @упоминания бота в чате). Приложения 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
.
- Создайте бота с любым именем, например, @ExampleComBot
- Настройте вебхук для входящих сообщений
- Сгенерируйте ключ достаточной длины, напр.
$memcache_key = 'TESTKEY'
- Запишите значение
123
с ключом$memcache_key
в Memcache на 3600 секунд (один час) - Отправьте пользователю ссылку
https://t.me/ExampleComBot?start=TESTKEY
- Настройте обработчик веб-хуков так, чтобы он запрашивал в Memcached значение входящего параметра каждый раз, когда приходит сообщение, начинающееся со
/start
. Если ключ существует, записываем chat_id, переданный в веб-хук, вtelegram_chat_id
для пользователя123
. Удаляем ключ из Memcache. - Теперь, если мы хотим отправить сообщение пользователю
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 — Удалить бота и его имя пользователя.
Пожалуйста, имейте в виду, что для применения настроек на сервере, возможно, потребуется некоторое время.
Как создать телеграм-бота | База знаний Selectel
С помощью ботов можно упростить себе задачу коммуникации с пользователями, создав для них умного помощника. Боты понимают текстовые команды и могут обращаться к API вашего вебсайта, сервиса или быть самостоятельным продуктом с уникальными услугами.
Обычно, для создания бота требуется сервер, но в этой статье мы разберём подход, позволяющий обойтись без него. Он идеален при резких колебаниях количества запросов и прекрасно выдерживает пиковые нагрузки.
Настроить Телеграм-бота на Облачных функциях, используя официальный API и заготовленный нами пример, можно в 3 этапа:
- Запрограммировать логику работы Телеграм-бота.
- Зарегистрировать нового бота в Telegram.
- Связать бота и его логику воедино.
Запрограммировать логику работы Телеграм-бота
Чтобы упростить задачу, мы написали пример такого бота. Его исходный код доступен по ссылке github.com/selectel/cloud-telegram-bot. Он понимает команды:
/start
с приветственным сообщением;/sticker
с ответом в виде стикера;/getwebhook
чтобы вы могли получить информацию о настройках вашего бота;/setwebhook
для настройки вашего бота, но об этом позже.
Пройдите следующие шаги с нашим примером бота, чтобы освоиться:
- Скачайте исходный код как архив («Clone or download» → «Download ZIP») и распакуйте его.
- Внутри должно быть:
- «setup.py» с минимальным кодом, чтобы Python-окружение приняло содержимое папки за модуль для установки;
- «requirements.txt» с описанием зависимостей;
- «bot» — папка с исходным кодом нашего бота.
- Выделите все эти файлы и папки, а затем создайте из них новый ZIP-архив, тогда исходный код внутри архива не будет иметь лишних папок (как в случае с архивом, скачанным с github).
- Перейдите в Облачная Платформа → Функции → Создать функцию, подробнее.
- Задайте имя, например, «Bot».
- Загрузите ZIP-файл в качестве Исполняемого кода.
- Укажите Путь к файлу в архиве как «/bot/tele_bot.py».
- Укажите Вызываемую функцию в коде как «main».
- Добавьте переменную окружения «TOKEN», но пока не задавайте для неё значения, мы коснёмся этого на следующем этапе.
- Нажмите кнопку Сохранить и развернуть.
- Поставьте галочку, что нужна Публичная ссылка.
Теперь у нас есть API, реализующее логику ответов бота. Следующим этапом мы зарегистрируем его в Telegram.
Зарегистрировать нового бота в Telegram
Чтобы Telegram знал о существовании нашего бота, его нужно зарегистрировать. Для этого существует только один способ:
- Найдите бота @BotFather в Телеграм. Это официальный бот, созданный специально для управления ботами.
Отправьте ему команду:
/newbot
@BotFather спросит вас, как вы назовёте вашего бота. Следующим сообщением отправьте его название, заканчивающееся на «_bot».
Запишите полученный токен от @BotFather — это ключ для работы с Telegram API.
Теперь у нас API, регистрация бота в Telegram и его токен. Осталось связать это вместе.
Как связать бота и его логику воедино?
На этом этапе надо сделать так, чтобы бот знал токен пользователя, а Telegram знал, где его API:
- Найдите переменную окружения «TOKEN» в настройках функции. Мы оставили её пустой на первом этапе.
- Укажите в этой переменной токен вашего бота, который получили от @BotFather.
- Нажмите Сохранить и развернуть.
Далее нужно направить сообщения, которые пользователи отправляют в Telegram, нашему боту — в то API, которое для него создали.
Способ 1. Через бота @SelectelServerless_bot
- Найдите бота @SelectelServerless_bot в Телеграме.
Введите команду:
/setwebhook <Токен от вашего бота> <URL от облачной функции>
Бот ответит тем, что получит из Telegram API. Если всё хорошо, это будет «true».
Чтобы удостовериться в том, что всё корректно, отправьте команду:
/getwebhook <Токен от вашего бота>
В ответ должна прийти информация о webhook, в том числе указанный вами URL.
Способ 2. Из заготовленной формы
Откройте форму (или скопируйте её к себе в Облачное хранилище). Вставьте токен от вашего бота в первое поле, URL облачной функции во второе и нажмите на кнопку «Set Webhook». Произойдёт обращение к api.telegram.org, и вы увидите результат.
Примечание: может понадобиться наличие VPN.
Итог
Готов для работы бот, доступный в Телеграме, отвечающий на команды и способный автоматически масштабироваться под нагрузкой и без сервера.
Всё, о чём должен знать разработчик Телеграм-ботов / Хабр
Вы вряд ли найдете в интернете что-то про разработку ботов, кроме документаций к библиотекам, историй «как я создал такого-то бота» и туториалов вроде «как создать бота, который будет говорить hello world». При этом многие неочевидные моменты просто нигде не описаны.
Как вообще устроены боты? Как они взаимодействуют с пользователями? Что с их помощью можно реализовать, а что нельзя?
Подробный гайд о том, как работать с ботами — под катом.
СодержаниеНачало работы
Telegram API vs Telegram Bot API
Рассказываю по порядку.
Телеграм использует собственный протокол шифрования MTProto. MTProto API (он же Telegram API) — это API, через который ваше приложение Телеграм связывается с сервером. Telegram API полностью открыт, так что любой разработчик может написать свой клиент мессенджера.
Для написания ботов был создан Telegram Bot API — надстройка над Telegram API. Перевод с официального сайта:
Чтобы использовать Bot API, вам не нужно ничего знать о том, как работает протокол шифрования MTProto — наш вспомогательный сервер будет сам обрабатывать все шифрование и связь с Telegram API. Вы соединяетесь с сервером через простой HTTPS-интерфейс, который предоставляет простую версию Telegram API.
Среди упрощений Bot API: работа через вебхуки, упрощенная разметка сообщений и прочее.
Почему-то мало кто знает о том, что боты могут работать напрямую через Telegram API. Более того, таким образом можно даже обойти некоторые ограничения, которые даёт Bot API.
Об авторизации ботов через Telegram API в официальной документации
Вся информация ниже будет по умолчанию относиться и к Bot API, и к Telegram API. О различиях я буду упоминать. От некоторых ограничений Bot API можно избавиться с помощью локального сервера, об этом в конце статьи.
На чём пишут Телеграм-ботов
Бот должен уметь отправлять запросы Телеграм-серверу и получать от него апдейты (updates, обновления).
Как получать апдейты в Bot APIПолучать апдейты можно одним из двух способов:
Поллинг — просто регулярно отправлять запрос к серверу Телеграма для получения обновлений,
Вебхук — сделать так, чтобы Телеграм сам отправлял запросы по нужному URL.
Конечно, удобнее использовать библиотеки, чем делать http-запросы «руками».
Если вы попробуете загуглить, как написать Телеграм-бота на Python, вам предложат воспользоваться библиотеками python-telegram-bot и telebot. Но не стоит.
Ну, если вы только хотите познакомиться с разработкой ботов и написать своего hello-world-бота, то можете, конечно использовать и их. Но эти библиотеки могут далеко не всё. Среди разработчиков ботов лучшей библиотекой для ботов на Python считается aiogram. Она асинхронная, использует декораторы и содержит удобные инструменты для разработки. Ещё был хороший Rocketgram, но он давно не обновлялся.
Также ботов часто пишут на JavaScript, для этого обычно используется Telegraf. Библиотеки есть и для многих других языков, но используют их реже.
Если же вы хотите использовать Telegram API, то можете воспользоваться Python’овскими Telethon и Pyrogram.
Пример кода ботаЕсли вы хотите получить какое-то представление о том, как вообще выглядит код бота, вот вам пример использования на aiogram с его странички на GitHub:
import asyncio
from aiogram import Bot, Dispatcher, types
async def start_handler(event: types.Message):
await event.answer(
f"Hello, {event.from_user.get_mention(as_html=True)} ?!",
parse_mode=types.ParseMode.HTML,
)
async def main():
bot = Bot(token=BOT-TOKEN)
try:
disp = Dispatcher(bot=bot)
disp.register_message_handler(start_handler, commands={"start", "restart"})
await disp.start_polling()
finally:
await bot.close()
asyncio.run(main())
Этот бот будет отвечать на команды /start
и и /restart.
Создание бота
Единственная информация о Телеграм-ботах, которой в интернете полным-полно: как создать бота. Это делается через специального бота BotFather. Когда вы создадите бота, BotFather даст вам его токен. Токен выглядит примерно так: 110201543:AAHdqTcvCh2vGWJxfSeofSAs0K5PALDsaw
. Именно с помощью токена вы сможете управлять ботом.
Один пользователь может создать до 20 ботов.
В BotFather удобно управлять ботами своими командой /mybots
.
Юзернеймы
При создании бота нужно выбрать юзернейм. После этого поменять его будет очень сложно.
Как поменять юзернейм ботаЕсли у вас есть бот, и вы хотите дать ему более короткий юзернейм (который может быть занят неработающим ботом), то вы, теоретически, можете это сделать через @BotSupport.
Для этого бот должен (внезапно) быть рабочим, а также поддерживать английский язык.
Принято использовать такой формат обращения в поддержку:
@old_username,
@new_username,
Что бот делает.
Если вы везунчик 9999 lvl — вам ответят.
Юзернейм бота выглядит как обычный юзернейм, но он должен заканчиваться на «bot».
Вы могли видеть ботов с именами @pic, @vid, @sticker, @gamee — это официальные боты Телеграма. Им можно нарушать все правила 🙂
Очень многие юзернеймы уже заняты. Свободных коротких юзернеймов осталось очень мало. И что самое грустное: почти все эти боты мертвы. Просто не отвечают на сообщения. Наверное, это просто разные любопытные люди хотят сделать бота, создают его, а потом забивают. У меня самого есть несколько лежащих ботов. Так что, думаю, лимит в 20 ботов на одного владельца вполне оправдан 🙂
Оформление бота
Открыв бота, пользователи могут увидеть его профиль.
Оформление бота настраивается в BotFather: меню /mybots
→ Edit Bot
. Там можно изменить:
Имя бота.
Описание (Description) — это текст, который пользователи будут видеть в начале диалога с ботом под заголовком «Что может делать этот бот?»
Информация (About) — это текст, который будет виден в профиле бота.
Аватарка. Аватарки ботов, в отличие от аватарок пользователей и чатов, не могут быть анимированными. Только картинки.
Команды — тут имеются ввиду подсказки команд в боте. Подробнее о командах ниже.
Inline Placeholder — об инлайн-режиме см. ниже.
Стандартный совет: Потратьте свое время и заполните описание и информацию бота, чтобы пользователям было понятнее и проще его использовать. Можете оставить там свои контакты. И поставьте аватарку, чтобы бота было проще отличать от других чатов в списке.
Сообщения и чаты
Запуск бота пользователем
Когда пользователь впервые открывает бота, он видит кнопку «Запустить» или «Начать» (зависит от платформы пользователя), на английском — «Start». Нажимая на эту кнопку, он отправляет команду /start
.
Таким образом, первое сообщение от пользователя — это всегда /start
(либо /start
с параметрами, об этом ниже в разделе «Диплинки»).
На стороне сервера это не проверяется, поэтому теоретически пользователь может отправить боту любое сообщение через Telegram API.
Сообщения
Понятно, что главная функция бота — отправлять и получать сообщения.
И то, и другое можно делать со всеми видами сообщений (фото и видео, файлы, опросы, голосовые сообщения и т. д.).
В Телеграме можно делиться файлами до 2 ГБ, но в Bot API более жесткие лимиты: боты могут скачивать файлы до 20 МБ и отправлять файлы до 50 МБ.
Работа с файлами в Bot APIЕсли бот уже загрузил файл на сервер Телеграма, то он может использовать file_id, чтобы отправлять этот файл.
Загружать файл на сервер можно в том числе и по URL файла.
Подробнее об отправке файлов в Bot API
Куда может писать бот
Бот может писать в личку только тем пользователям, которые его запустили. Пользователь может заблокировать бота, и тогда бот снова не сможет ему писать.
Боты не могут писать другим ботам.
Бота можно добавить в группу (если в BotFather включена соответствующая настройка). По умолчанию он видит не все сообщения (об этом ниже, в разделе «Видимость сообщений в группах»).
В группе боту можно дать права администратора, чтобы он мог выполнять действия админов.
В одной группе может быть до 20 ботов. В публичные группы (группы с юзернеймом) ботов могут добавлять только админы.
Также бота можно добавить в канал, причем только как администратора. Самый частый способ использования ботов в каналах — добавление кнопок под постами («лайки», ссылки и прочее).
Как боты добавляют кнопкиУ админа канала может быть специальное право: «Редактирование чужих публикаций». С помощью него боты редактируют посты, добавляя к ним кнопки.
Подробнее о кнопках тоже ниже.
Супергруппы
На самом деле многие группы в Телеграме являются супергруппами.
Почему так? Раньше было четкое разделение на группы и супергруппы. По задумке, супергруппы — это группы для сообществ. Супергруппы могут иметь больше участников, публичные ссылки и другие плюшки.
Со временем, видимо, решили, что это неудобная концепция. Теперь обычная группа становится супергруппой, когда у группы меняются какие-нибудь настройки (подробнее тут). Вот такой костыль.
В этой статье под группами я подразумеваю и супергруппы, и обычные группы.
Супергруппу нельзя обратно превратить в группу. С точки зрения API супергруппа устроена так же, как и канал. Важное отличие супергрупп от обычных групп состоит в нумерации сообщений: о нём чуть ниже.
id пользователей и чатов
У каждого пользователя, бота, группы, канала в Телеграме есть собственный id. Различать чаты в коде бота следует именно по id, потому что он никогда не меняется.
В токене бота первая часть — это его id. Например, токен 110201874:AAHdqTcvCh2vGWJxfSeofSAs0K5PALDsaw
принадлежит боту с id 110201874
.
В Bot API перед id супергрупп и каналов пишется -100. Так, id 1356415630
превращается в -1001356415630
. Осторожно: вы не сможете сохранить это значение в 32-битный тип числа.
id сообщений
Каждое сообщение в Телеграме имеет свой id. Это относится и к системным сообщениям (пользователь зашел в группу, изменилось название группы и т. д.)
Через Telegram API боты могут получать по запросу сообщения в любом чате по их id.
id сообщений в супергруппах и каналах уникальны для чата: первое сообщение в чате имеет номер 1, второе имеет номер 2 и так далее.
id сообщений в личных сообщениях и обычных группах работают по другому. Там, можно сказать, нумерация сквозная: id сообщения уникально для каждого отправившего его пользователя. Так, первое сообщение от пользователя во всех личках и группах имеет номер 1, второе сообщение от того же пользователя имеет номер 2 и так далее.
Видимость сообщений в группах
Обычно бот должен реагировать именно на команды. Телеграм не уведомляет бота об остальных сообщениях, и это гарантирует приватность переписки.
Но если боту нужно видеть все сообщения в группе (например, если это чат-бот или антиспам-бот), для него можно отключить Privacy mode.
Privacy mode — настройка в BotFather, которая по умолчанию включена. В таком режиме бот в группах видит только такие сообщения:
Сообщения с упоминанием бота,
Ответы на сообщение бота, ответы на ответы и так далее,
Системные сообщения,
Команды — о них в следующем пункте.
А если Privacy mode выключен, то бот видит все сообщения в группе.
Если бот — админ в группе, то он в любом случае видит все сообщения.
Бот, работающий через Bot API, в любом случае не будет видеть сообщения от других ботов.
Бот видит не все сообщенияЯ включил Privacy mode, а он не работаетНужно удалить бота из группы и добавить заново.
Исправленный баг с видимостью сообщенийНедавно был найден баг: боты не могли видеть некоторые сообщения от юзеров, если сообщения выглядят как команды с юзернеймом пользователя на конце.
Это могло нарушить работу антиспам- и других ботов.
Сейчас баг уже исправлен.
О Privacy mode в документации Bot API
Команды
Часто используемый способ «общения» пользователей с ботом — команды. Команды начинаются на «/» и состоят из латинских букв (можно использовать цифры и нижние подчеркивания).
Команды подсвечиваются как ссылки: нажатие отправляет команду в чат.
В группах, чтобы различать команды от разных ботов, Телеграм предлагает ставить в конце команды юзернейм бота. Например: /start@examplebot
.
В BotFather можно указать подсказки команд для бота. Он будут отображаться при вводе «/» и команд. Если есть подсказки, рядом с кнопкой «Отправить» появляется кнопка для открытия меню команд.
Если в подсказках команд есть /help
, в профиле бота появляется кнопка «Помощь с ботом». Нажатие на кнопку отправляет эту команду.
Если в подсказках команд есть /settings
, в профиле бота появляется кнопка «Настройки бота». Нажатие на кнопку отправляет эту команду.
Разметка сообщений
Как вы, наверное, знаете, сообщения в Телеграме могут содержать не только обычный текст, но и жирный, курсив и др. В Bot API разметку сообщений можно делать в HTML и Markdown.
Разметка в Telegram APIВ Telegram API для разметки надо вместе с сообщением передавать entities (MessageEntityBold, MessageEntityItalic и так далее). Хорошие библиотеки сами превращают HTML/Markdown в текст и entities.
Способы выделения текста:
Жирный текст
Курсив
Подчёркнутый текст
Зачёркнутый текстМоноширинный текст ("в строке" и "блоком")
Ссылка (встроенная в текст)
Упоминание пользователя — текст, похожий на ссылку, клик по которому открывает профиль пользователя. Если упомянуть в группе её участника, он получит уведомление.
Чтобы вставить в сообщение упоминание пользователя, в Bot API нужно встроить ссылку на tg://user?id=123456789.
О разметке в документации Bot API
Кнопки
Инлайн-кнопки
Бот может оставлять кнопки под своими сообщениями.
Кнопки под сообщениями (они же inline keyboards / inline buttons) в основном бывают трёх видов:
URL button — кнопка с ссылкой.
Callback button. При нажатии на такую кнопку боту придёт апдейт. С созданием кнопки можно указать параметр, который будет указан в этом апдейте (до 64 байтов). Обычно после нажатий на такие кнопки боты изменяют исходное сообщение или показывают notification или alert.
Switch to inline button. Кнопка для переключения в инлайн-режим (об инлайн-режиме см. ниже). Кнопка может открывать инлайн в том же чате или открывать меню для выбора чата. Можно указать в кнопке запрос, который появится рядом с никнеймом бота при нажатии на кнопку.
Login URL button — специальная кнопка для авторизации пользователей на сайте. Использовалась, например, в официальном боте @discussbot (до добавления нативных комментариев в Телеграм).
Callback game button — кнопка для открытия HTML-игры. См. пункт «HTML-игры».
Pay button — кнопка для платежей. См. пункт «Платежи через ботов».
Клавиатурные кнопки
Есть другой тип кнопок: keyboard buttons. Они отображаются вместо клавиатуры как подсказки. При нажатии на такую кнопку пользователь просто отправит этот текст.
При этом в личных чатах с помощью кнопки можно:
Запросить номер телефона пользователя,
Запросить геолокацию пользователя,
Открыть у пользователя меню создания опроса.
Есть опция resize_keyboard, которая отвечает за то, изменять ли высоту этой «клавиатуры из кнопок». По умолчанию она, почему-то, выключена, и тогда высота клавиатуры стандартная большая. Получаются кнопки как на этой картинке:
Чтобы показать клавиатурные кнопки, бот должен отправить сообщение. Можно отправить клавиатуру, которая свернётся (но не пропадёт) после нажатия на кнопку.
По умолчанию, если показать кнопки в группе, они будут видны всем пользователям. Вместо этого можно отобразить кнопки одновременно для этих пользователей:
Для пользователей, юзернеймы которых были в тексте сообщения,
Если это ответ на другое сообщение: для пользователя, который его отправил.
Ещё о кнопках
Оба типа кнопок могут составлять несколько рядов, в каждом из которых по несколько кнопок. Ограничения: в ряду может быть до 8 кнопок, а всего с сообщением до 100 кнопок.
При отправке сообщения можно выбрать одно (но не больше) из следующих действий:
Добавить к сообщению инлайн-кнопки,
Показать клавиатурные кнопки,
Убрать все клавиатурные кнопки,
Force reply: автоматически заставить пользователя ответить на сообщение. Так произойдёт то же самое, что и при нажатии пользователем кнопки «Ответить». Это нужно для того, чтобы бот мог общаться с пользователями в группах, не нарушая Privacy mode.
Таким образом, нельзя показать оба типа кнопок одновременно.
Взаимодействие с ботом
Ссылки на бота
Юзернеймы ботов работают так же, как и любые другие юзернеймы в Телеграме: бота @examplebot
можно открыть по ссылке t.me/examplebot.
Также существует прямая ссылка: tg://resolve?domain=examplebot
Такие ссылки могут не только заменять ссылки t.me, но и задавать свои действия. Например, tg://settings открывает настройки.
Список известных таких ссылок есть канале @DeepLink.
Ссылка на добавление в группу
По ссылке t.me/examplebot?startgroup=true у пользователя откроется меню: выбор группы для добавления бота.
Прямая ссылка: tg://resolve?domain=examplebot&startgroup=true
Диплинки
По ссылке t.me/examplebot?start=<ваш текст>
пользователь может запустить бота с каким-то стартовым параметром (<ваш текст>
).
Как это выглядит:
При переходе по ссылке бот открывается как обычно.
Отображается кнопка «Запустить», даже если пользователь уже запускал бота.
Пользователь нажимает на кнопку и видит сообщение
/start
(всё как обычно).Боту вместо этого приходит сообщение
/start <ваш текст>
Так бот может отреагировать на запуск не как на обычный «/start», а другим способом.
Часто диплинки используются для реферальных программ (в качестве параметра можно передавать id пользователя, который поделился ссылкой). Есть и другие применения.
Прямая ссылка: tg://resolve?domain=examplebot&start=<ваш текст>
О диплинках в документации Bot API
Инлайн-режим
Инлайн-режим (inline mode) — это специальный режим работы бота, с помощью которого пользователь может использовать бота во всех чатах.
Выглядит это так: пользователь вводит юзернейм бота в поле для ввода сообщения. После юзернейма можно ещё записать запрос (текст до 256 символов).
Появляется менюшка с результатами. Выбирая результат, пользователь отправляет сообщение.
Инлайн-режим можно включить в BotFather, там же можно выбрать плейсхолдер вместо стандартного «Search…»
В группе можно запретить использовать инлайн всем или некоторым участникам. В официальных приложениях Телеграм это ограничение объединено с ограничением на отправку стикеров и GIF.
Страничка об инлайн-режиме на сайте Telegram
Результаты инлайн-режима
Результаты можно отображать двумя способами:
Можно совмещать два типа, но корректно отображается это только на Telegram Desktop.
Приватность и геопозиция в инлайне
Когда пользователь вызывает инлайн-режим, бот не может получить никакую информацию о контексте, кроме информации о пользователе. Таким образом, бот не может узнать ни чат, в котором вызвали инлайн, ни сообщение, на которое пользователь отвечает.
Но зато если включить в BotFather настройку «Inline Location Data», то бот сможет видеть геопозицию пользователей, когда они используют инлайн (на мобильных устройствах). Перед этим у пользователей показывается предупреждение.
Inline feedback
Inline feedback — это апдейты о выбранных инлайн-результатах. Включаются через BotFather.
Предполагается использование inline feedback для сбора статистики, но не всегда он используется так. Inline feedback позволяет «подгружать» не все результаты сразу, а только выбранный. Например, если бот используется для поиска музыки, то он может загружать не все песни сразу, а только одну.
Важный момент: если вы получили апдейт об отправке инлайн-сообщения, то вы можете его редактировать, только если к нему прикреплены инлайн-кнопки. (Если кнопок нет, то в апдейте не указывается id инлайн-сообщения, по которому происходит редактирование).
Создание наборов стикеров
Боты (и только боты!) могут создавать наборы стикеров. При этом каждый набор стикеров должен принадлежать какому-то пользователю. Посмотреть свои наборы стикеров пользователь может с помощью бота @Stickers.
Платежи через ботов
Телеграм предоставляет ботам возможность принимать платежи от пользователей. Это делается через провайдеров ЮMoney, Сбербанк, Stripe и ещё 7.
Эта возможность используются редко, потому что для использования провайдеров нужно юридическое лицо.
Страница Bot Payments API
UPD 26.04.2021. В новом обновлении появилось больше возможностей платежей для разработчиков. Теперь боты могут отправлять платежи не только в лс, но и в группы и в каналы. Это позволяет сделать из канала «витрину», на которой можно сразу купить товар. Вы можете посмотреть, как это выглядит, в официальном демо-канале.
HTML-игры в ботах
Боты могут позволять пользователям играть в HTML5-игры в чатах. Бот может отправлять сообщения-игры или создавать их через инлайн-режим. Как это работает, можно посмотреть на примере официального @gamebot.
Страница Bot Gaming Platform
Telegram Login Widget
Вы можете добавить на свой сайт авторизацию через Телеграм. Процесс авторизации будет проходить так:
Пользователь должен будет ввести свой номер телефона.
Бот Telegram попросит подтвердить вход.
Пользователь авторизуется и нажимает на «Принять» на сайте.
Telegram Login Widget не связан с Login URL button (см. раздел про кнопки выше), а является его альтернативой.
О Telegram Login Widget на сайте Телеграм
Разработка ботов
Какие апдейты можно получать
Бот не может получить старые сообщения из чата. Бот не может получить список всех своих пользователей. Все, что может получать бот — это информацию об обновлениях. В этом заключается главная сложность разработки ботов.
Вы можете получать информацию о новых сообщениях в боте и других событиях, но только один раз. Вам придётся самим хранить список чатов, старых сообщений (если это зачем-то нужно) и так далее. Если вы случайно сотрёте/потеряете эту информацию, вы её больше никак не получите.
В Telegram API бот может чуточку больше: он может получать сообщения по id, получать список участников группы и прочее.
Получение апдейтов: Bot API vs Telegram APIЕсли вы получили апдейт в Bot API, то второй раз вы его уже не получите.
В Telegram API это не так: пользователь может пользоваться мессенджером через несколько клиентов, каждый из которых должен получать апдейты.
Если запустить для одного бота несколько программ на Telegram API, то каждая из них будет получать все апдейты.
Ограничения Bot API не позволяют сделать то же самое.
Лимиты
Конечно, на запросы к серверу существуют лимиты. В Bots FAQ на сайте Telegram названы следующие:
Не больше одного сообщения в секунду в один чат,
Не больше 30 сообщений в секунду вообще,
Не больше 20 сообщений в минуту в одну группу.
Эти лимиты не строгие, а примерные. Лимиты могут быть увеличены для больших ботов через поддержку.
Другие известные ограничения в Telegram собраны на limits.tginfo.me — см. раздел про ботов.
Рассылка по пользователям
Ниже в Bots FAQ сказано, что Bot API не позволяет рассылать сообщения всем юзерам одновременно и что в будущем, может быть, они что-то для этого сделают. И написано это уже несколько лет.
Они советуют растянуть рассылку на длительное время (8-12 часов) и замечают, что API не позволит отправлять сообщения более чем ~30 пользователям в секунду.
Смена владельца бота
Осенью 2020 года появилась возможность передавать ботов другому человеку. Это можно сделать в настройках бота в BotFather. Для этого на вашем аккаунте должна быть включена двухфакторная авторизация — не менее, чем за 7 дней до передачи. Передать бота можно только пользователю, который что-либо ему писал.
Локальный сервер Bot API
Также осенью 2020 года исходники Bot API выложили на GitHub. Теперь вы можете поднять собственный сервер Bot API. На GitHub перечислены следующие преимущества:
Скачивание файлов с сервера без ограничения (ограничение на отправку файлов пользователями в Телеграме — 2 ГБ),
Загрузка файлов на сервер до 2000 МБ,
Загрузка файлов на сервер с помощью локального пути и URI файла,
Использование HTTP URL для вебхука,
Использование любого локального IP-адреса для вебхука,
Использование любого порта для вебхука,
Возможность увеличить максимальное число соединений до 100000,
Получение локального пути файла вместо загрузки файла с сервера.
Юзерботы
В начале статьи я рассказывал о том, что такое Telegram API и Telegram Bot API.
Telegram API используется не только для ботов — тогда в чём проблема управлять аккаунтами пользователей, как ботами? Люди это делают. Кто-то автоматически ставит текущее время себе на аватарку, кто-то скриптом реагирует на свои сообщения как на команды, кто-то сохраняет сообщения из публичных групп и каналов. Всё это называют юзерботами.
Юзерботов следует использовать аккуратно: за большую подозрительную активность аккаунт могут ограничить или забанить.
Заключение
Я постарался собрать в одном месте и структурировать информацию о всех возможностях Телеграм-ботов. Большое спасибо vanutp, NToneE и Grinrill за помощь с фактами. Если мы что-то забыли — пишите, исправлю.
Я специально не разделял большую статью на несколько постов, чтобы можно было быстро найти нужную информацию. К тому же, в начале статьи есть её содержание. Так что можете сохранить её к себе и использовать как справочник 🙂
Вообще интерфейс бота (то есть интерфейс чата) имеет много ограничений. Но плохо ли это? Действительно удобнее использовать инструмент, когда это часть привычной среды. Я часто прямо в переписке нахожу нужную картинку или информацию с помощью инлайн-ботов. Как заядлый пользователь Телеграма, я люблю использовать ботов. И создаю ботов. И вы создавайте.
Побойся бота: как Telegram-деанонимайзер вычисляет преступников | Статьи
В России создан Telegram-деанонимайзер, способный определять имена и номера телефонов пользователей, а также «видеть» характеристики мобильных устройств и их примерное местоположение. По словам разработчиков, этими возможностями уже пользуются сотрудники МВД и ФСБ. Благодаря новой системе правоохранителям удается находить преступников, занимающихся, например, наркоторговлей через даркнет и продажей краденых баз данных. Бот даже помог оперативно раскрыть убийство подполковника полиции Евгении Шишкиной, которое произошло 10 октября 2018 года в Подмосковье.
Легальный разведчик
Telegram-деанонимайзер представлен в виде сети ботов, которые размещены в мессенджере и действуют там под видом реальных пользователей, их сообществ либо различных сервисов, использующихся для покупок в интернете и просмотра различного контента. Взаимодействуя с реальными людьми, боты постепенно собирают их личные данные, к которым относится номер телефона, номер ID, IP — адрес и характеристики используемого устройства.
— По совокупности обнаруженных нами «цифровых следов» пользователя можно с большой долей вероятности определить конкретное мобильное устройство, с которого тот пользуется мессенджером, — рассказал генеральный директор компании «Интернет-розыск» Игорь Бедеров. — Более того, в дальнейшем это даст возможность создать «виртуальный слепок» гаджета, имея который, можно будет делать запросы в различные интернет-сервисы (например, на Ozon, «Авито», «Авто.ру») о действиях его владельца, а также получить контакты, оставленные им при регистрации.
По словам эксперта, юридического обязательства отвечать на такие запросы у владельцев данных сайтов пока нет, однако они могут появиться в результате принятия соответствующих поправок в законодательство, за которые выступает компания.
— Сайты действительно могут узнавать пользователей устройств — в частности, по файлам cookie, которые хранятся в их памяти. Это позволяет идентифицировать посетителей и даже демонстрировать им контекстную рекламу по интересам, — пояснил руководитель аналитического центра компании Zecurion Владимир Ульянов. — Таким образом, если популярные ресурсы действительно будут делиться информацией со следственными органами, это может увеличить шансы на определение личности злоумышленника.
С другой стороны, современные преступники зачастую действуют в Сети с большой осторожностью, которая может помешать сбору информации.
— Например, человек может заходить в интернет при помощи «серой» SIM-карты, купленной на каком-нибудь рынке, в этом случае она будет зарегистрирована на стороннего человека и данные пользователя раскрыть не удастся, — отметил эксперт.
Важно отметить, что разработчики подчеркивают законность своих действий, поскольку они не взламывают сам Telegram и не осуществляют в нем таких нежелательных для мессенджера действий, как массированное получение данных о пользователях с одного аккаунта. В настоящее время использование подобных методов намеренно ограничено мессенджером — лимит запросов недавно был сокращен с 15 тыс. до 10 тыс. и имеется тенденция к его дальнейшему снижению.
Новый деанонимайзер находится в свободном доступе, для его работы пользователю не нужно заручаться какими-либо формальными основаниями (например, решением суда) хотя бы по той причине, что и сам Telegram официально не работает в России.
С другой стороны, варианты деанонимайзера для физических лиц и следственных органов имеют различные возможности. В частности, для обычных пользователей сейчас работает бесплатная урезанная версия, которая позволяет направить ботов к интересующему человеку и узнать его номер телефона и ID, а также имя и фамилию, указанные при регистрации.
В случае использования системы в интересах правоохранительных органов, к этой информации прибавляется фактическое местоположение устройства, его модель и запросы, которые были сделаны с помощью гаджета. Таким образом, сотрудники МВД могут узнать весь круг интересов пользователя, вплоть до того, в какие группы он входит и какую информацию запрашивал.
Найдутся все
Новый бот уже был успешно применен при расследовании реальных уголовных дел — в частности, одним из прецедентов стало убийство подполковника полиции Евгении Шишкиной, которое произошло 10 октября 2018 года в Подмосковье.
— Уже через неделю после этого события мы смогли найти аккаунт в Telegram, с которого в адрес потерпевшей поступали угрозы, — пояснил Игорь Бедеров. — Затем с помощью работы бота с этим аккаунтом был установлен номер телефона, который привел следователей в Петербург, где впоследствии были найдены преступники.
По словам эксперта, применение разработки в данном случае помогло значительно сузить место поисков по фактическому применению устройства (в точности до города) и отсечь несколько тупиковых гипотез следствия — в частности ту, согласно которой Шишкину мог убить собственный муж.
— Разработка позволяет эффективно устанавливать связь между аккаунтами в Telegram и конкретными лицами, а также средствами общения, которые они используют, — отметил источник «Известий», близкий к спецслужбам. — Причем в ряде случаев необходимую информацию (имя, фамилию, телефон, почтовые ящики и т.д.) удается получить сразу же, после отправки запроса. Это говорит о том, что боты уже наработали достаточно большую информационную базу по пользователям мессенджера.
По его словам, в настоящее время разработка прошла тестирование и активно используется для расследований по делам о «сливах» украденных информационных баз, а также по другим преступлениям.
— Были случаи, когда Telegram-деанонимайзер помогал следствию выйти из тупика, связанного с серьезными мерами предосторожности, которые используют хакеры для того, чтобы их не вычислили (VPN-сервера в сочетании с браузером Тоr и частой сменой никнеймов). Это говорит о высоких перспективах бота, — подчеркнул собеседник «Известий».
Используют разработку и сотрудники некоторых подразделений МВД.
—Telegram-деанонимайзер мы активно тестируем уже около полугода, используя его для выявления лиц, занимающихся продажей синтетических наркотиков через даркнет, — рассказал начальник отдела Управления по контролю за оборотом наркотиков ГУ МВД России по Челябинской области Дмитрий Соколов. — Исходя из нашего опыта, использование этой и других разработок компании «Интернет-розыск» дает положительный эффект в комплексе со стандартными оперативно-разыскными мероприятиями.
Бот-свидетель
Ожидается, что данные, собранные с помощью новой разработки, можно будет использовать как в интересах расследования, так и в качестве доказательства в суде.
— Если к делу необходимо приобщить информацию из интернета (например, с какого-либо сайта), то обычно приглашается нотариус, который должен ее зафиксировать в протоколе осмотра, после чего она может использоваться в качестве доказательства по делу, — сообщил адвокат, председатель Общественного совета при МВД РФ Анатолий Кучерена. — Думаю, та же ситуация будет иметь место и в случае применения нового бота.
Однако, по мнению юриста, использование представленного сервиса необходимо контролировать.
— Когда подобные разработки попадают не в те руки, они могут легко превратиться в ботов-шпионов, из-за чего безопасность личных данных законопослушных граждан оказывается под угрозой, — предупредил Кучерена.
Telegram-деанонимайзер был представлен в ноябре 2019 года на конференции Баркемп 20.35, организованной Национальной технологической инициативой в Санкт-Петербурге.
В настоящее время в рамках системы работает уже около 40 ботов. При этом она может быть легко масштабирована под постоянное использование правоохранительными органами в качестве штатного инструмента для расследований. В этом случае количество ботов увеличится до нескольких тысяч — так они смогут покрыть значительную часть российской аудитории Telegram и максимизируют вероятность получения данных о его пользователях.
ЧИТАЙТЕ ТАКЖЕ
Контакт-центр: Telegram
Канал Telegram позволяет создать открытую линию c помощью чат-бота Telegram.
Для подключения канала необходимо получить Токен доступа. Сделать это можно как при создании нового бота в Telegram, так и в уже существующем.
Как создать нового бота Telegram
Перейти по ссылке или найти бота BotFather в самом Telegram-е (в веб-версии, в десктоп или мобильном приложении Telegram) и нажать Запустить:
Выберите команду, чтобы создать нового бота – /newbot
:
Укажите имя вашего бота, по которому клиенты смогут найти и обратиться к вашей компании через Telegram. Имя будет отображаться в контакт листе, а также в открытых чатах Telegram – в нашем примере Диваны&Диваны
:
Далее укажите уникальное имя вашего бота (@username), по которому клиенты смогут найти вас в Telegram, а также на основании которого будет сформирована ссылка на вашего бота. Уникальное имя должно обязательно содержать в конце суффикс bot – в нашем примере это divandivan_bot
:
После этого вы получаете нужный Токен доступа:
Скопируйте этот токен и вставьте в соответствующее поле в настройках открытой линии и нажмите кнопку Подключить:
Вы также можете создать иконку вашему боту командой /setuserpic
, выберите ваш бот (если у вас их несколько) и потом просто отправьте картинку в чат:
Отключить возможность добавления вашего чат-бота в группы Telegram можно в настройках бота. Отобразите список ваших ботов: /mybots
, выберите ваш бот (если у вас их несколько) и перейдите в настройку Bot Settings:
Далее в настройках бота выберете пункт Allow Groups?:
И выключите добавление бота в группы Turn groups off:
Все. Канал Telegram подключен.
Как получить токен существующего бота
Если у вас бот уже создан заранее или вам понадобился токен доступа, то получить его легко. Просто в чате с ботом BotFather введите команду /token
, выберите ваш бот (если у вас их несколько):
Чтобы удалить существующий токен и создать новый, нужно ввести команду /revoke
, выбрать ваш бот (если у вас их несколько), и бот BotFather выдаст вам новый токен:
Когда отзывается старый токен командой /revoke
, то он становится недействителен, поэтому не забудьте скопировать в настройки канала Telegram новый токен.
Как это работает
Клиент в своем приложении Telegram находит вашего чат-бота или заходит по прямой ссылке на чат-бот и общается с оператором:
У оператора весь диалог также происходит в Бизнес-чате на портале (в веб-версии, в десктоп- и в мобильном приложении Битрикс24):
Для подключения Открытых линий в коробочной версии Битрикс24 необходимо сделать предварительные настройки сервера и модулей портала.
Особенности подключения канала Telegram:
- На один аккаунт Telegram можно создать не более 20 чат-ботов.
- Файлы более 20 Мб не принимаются (из-за технического ограничения Telegram API). В этом случае соответствующий текст будет отправлен оператору, и он должен попросить клиента переслать файл иным путем.
- В случае, если одинаковый token был указан на нескольких порталах и/или облачных порталах, то работать будет только последний успешно подключенный портал. Остальные порталы отключаются и в тех каналах коннектор помечается как «аварийный».
- При общении в данном канале можно редактировать свои сообщения.
- Telegram не передает номер телефона клиента при общении в чате, т.е получить номер телефона в лид СRM через канал Telegram можно, только если сам клиент укажет его в диалоге с оператором открытой линии.
FAQ по ботам
Если вы новичок в ботах Telegram, мы рекомендуем сначала ознакомиться с нашим Знакомство с ботами .
Вы также можете найти Bot API Manual полезным.
Общие вопросы Как создать бота?
Создавать ботов Telegram очень просто, но вам потребуются хотя бы некоторые навыки компьютерного программирования. Чтобы бот работал, создайте учетную запись бота с помощью @BotFather, а затем подключите его к своему внутреннему серверу через наш API.
К сожалению, готовых способов создать работающего бота, если вы не разработчик, не существует. Но мы уверены, что скоро вы найдете множество ботов, созданных другими людьми, с которыми можно будет поиграть.
Я разработчик. Где найти примеры?Вот два примера ботов, написанных на PHP:
- Hello Bot демонстрирует основы API бота Telegram. Бот
- Simple Poll является более полным примером, он поддерживает как длинный опрос, так и Webhooks для получения обновлений.
Многие члены нашего сообщества создают ботов и публикуют исходники.
Собираем их на на этой странице »
Напишите нам на @BotSupport, если вы создали бота и хотите поделиться им с другими.
Будете ли вы добавлять X в Bot API?API бота еще довольно молод. Есть много потенциальных возможностей, которые следует рассмотреть и реализовать. Некоторое время мы будем изучать, что люди делают со своими ботами, чтобы увидеть, какие направления будут наиболее важными для платформы.
Приглашаем всех разработчиков ботов поделиться идеями о нашем Bot API в нашей учетной записи @BotSupport .
Какие сообщения будет получать мой бот?1. Все боты , независимо от настроек, получат:
- Все служебные сообщения.
- Все сообщения из приватных чатов с пользователями.
- Все сообщения от каналов, участником которых они являются.
2. Администраторы ботов и боты с отключенным режимом конфиденциальности будут получать все сообщения, кроме сообщений, отправленных другими ботами.
3. Боты с включенным режимом конфиденциальности получит:
- Команды, явно предназначенные для них (например, / command @ this_bot).
- Общие команды от пользователей (например, / start) если бот был последним ботом, отправившим сообщение группе.
- Сообщения, отправленные через этого бота.
- Отвечает на любые сообщения, явно или неявно предназначенные для этого бота.
Примечание , что каждое конкретное сообщение может быть доступно только одному боту с включенной конфиденциальностью , т.е.е. ответ боту A, содержащий явную команду для бота B или отправленный через бота C, будет доступен только боту A. Ответы имеют наивысший приоритет.
Почему мой бот не видит сообщения от других ботов?Боты, разговаривающие друг с другом, потенциально могут застрять в нежелательных циклах. Чтобы этого избежать, мы решили, что боты не смогут видеть сообщения от других ботов независимо от режима.
Получение обновлений Как мне получать обновления?В настоящее время есть два способа получения обновлений.Вы можете использовать либо длинный опрос, либо Webhooks. Обратите внимание, что не позволяет получать обновления с помощью длительного опроса , пока установлен исходящий Webhook.
Длинный опрос дает мне одни и те же обновления снова и снова!Метод getUpdates возвращает 100 первых неподтвержденных обновлений. Чтобы подтвердить обновление, используйте параметр offset при вызове getUpdates следующим образом:
смещение = update_id последнего обработанного обновления + 1
Все обновления с update_id меньше или равным смещению будут помечены как подтвержденные на сервере и больше не будут возвращаться.
У меня проблемы с Webhooks.Если вы успешно настроили веб-перехватчик, но не получаете никаких обновлений, запомните:
- Для работы веб-перехватчиков необходим действующий сертификат SSL.
- Чтобы использовать самозаверяющий сертификат, вам необходимо загрузить сертификат открытого ключа с помощью параметра certificate в setWebhook. Пожалуйста, загрузите как InputFile, отправка строки не будет работать.
- Порты, которые в настоящее время поддерживаются для Webhooks: 443 , 80 , 88 , 8443 .
- Подстановочные сертификаты могут не поддерживаться.
- Перенаправления не поддерживаются.
- CN должен точно соответствовать вашему домену.
У меня проблема с самозаверяющим сертификатом!Пожалуйста, ознакомьтесь с этим новым WEBHOOK GUIDE , чтобы узнать все, что нужно знать о веб-перехватчиках!
Ознакомьтесь с этим руководством по самозаверяющим сертификатам, которое мы сделали специально для вас. Если вы прочитали это, но у вас все еще есть вопросы, напишите нам в службу поддержки ботов.
Как я могу убедиться, что запросы Webhook поступают из Telegram?Если вы хотите убедиться, что запрос Webhook исходит от Telegram, мы рекомендуем использовать секретный путь в URL-адресе, который вы нам даете, например www.example.com/your_token. Поскольку никто другой не знает токен вашего бота, можете быть уверены, что это мы.
Как я могу делать запросы в ответ на обновления?Это возможно, если вы используете веб-перехватчики. Положительный момент в том, что вам нужно меньше запросов, недостаток — в этом случае невозможно узнать, что такой запрос был успешным, или получить его результат.
Каждый раз, когда вы получаете обновление веб-перехватчика, у вас есть два варианта:
1. Отправьте сообщение POST на https://api.telegram.org/bot
2. Ответьте напрямую и укажите метод как полезную нагрузку JSON в ответе
Обращение со СМИ Как мне скачивать файлы?Вы также можете посмотреть наш пример HelloBot, он предлагает PHP-реализацию этого.
Используйте метод getFile.Обратите внимание, что это будет работать только с файлами размером до 20 МБ.
Как загрузить большой файл?Боты в настоящее время могут отправлять файлы любого типа размером до 50 МБ, так что да, очень большие файлы пока работать не будут. Сожалею. Этот лимит может быть изменен в будущем.
Могу ли я рассчитывать на постоянство file_ids?Да, file_ids можно рассматривать как постоянные.
Вещание для пользователей Мой бот достигает пределов, как мне этого избежать?При отправке сообщений в определенном чате избегайте отправки более одного сообщения в секунду.Мы можем разрешить короткие пакеты, превышающие этот предел, но в конечном итоге вы начнете получать 429 ошибок.
Если вы отправляете массовые уведомления нескольким пользователям, API не будет разрешать более 30 сообщений в секунду или около того. Для достижения наилучших результатов рассмотрите возможность рассылки уведомлений через большие интервалы в 8–12 часов.
Также обратите внимание, что ваш бот не сможет отправлять более 20 сообщений в минуту в одну и ту же группу.
Как я могу отправить сообщение всем подписчикам моего бота сразу?К сожалению, на данный момент у нас нет методов для массовых рассылок, например.г. уведомления. Мы можем добавить что-нибудь в этом роде в будущем.
Чтобы избежать выхода за наши пределы при рассылке массовых уведомлений, рассмотрите возможность их распространения на более длительные интервалы, например 8-12 часов. API не будет разрешать массовые уведомления более чем ~ 30 пользователям в секунду, если вы перейдете через это, вы начнете получать 429 ошибок.
См. Также: Как избежать превышения лимита?
Если у вас есть вопросы, на которые нет ответа на этой странице, напишите нам на @BotSupport в Telegram.
Мы приветствуем любые предложения по бот-платформе и API.
Что такое Telegram Bot? Разъяснение с промышленной направленностью.
1. Что такое Telegram?
Telegram — это приложение для онлайн-обмена сообщениями , которое по своей сути работает как популярные приложения для обмена сообщениями WhatsApp или Facebook Messenger.
Это означает, что вы можете использовать Telegram для отправки сообщений своим контактам при подключении к Wi-Fi или мобильному доступу в Интернет. Telegram основан на облаке и ставит во главу угла безопасность и скорость.В результате мессенджер стал популярной альтернативой другим приложениям для обмена сообщениями. Сервис был запущен в 2013 году, и в настоящее время его ежемесячно используют более 500 миллионов активных пользователей.
1.1 Какие особенности?
Telegram сочетает в себе скорость WhatsApp с эфемерностью Snapchat. Как и WhatsApp, Telegram может отображать статус партнера по коммуникации в Интернете и передавать тексты, фотографии, видео, аудиофайлы, информацию о местоположении, контакты и документы.Но есть также возможность предоставить этой информации дату истечения срока действия и, таким образом, удалить ее автоматически.
Еще одна особенность Telegram — его безопасность. Все действия, включая чаты, группы и мультимедиа, которыми пользуются участники, зашифрованы. Это означает, что они не видны без предварительной расшифровки. Telegram также предлагает сквозное шифрование между партнерами по чату с функцией «секретных чатов».
1.2 Откуда мессенджер?
Компания Telegram Messenger и приложение были запущены в 2013 году братьями Николаем и Павлом Дуровыми в России, а затем переехали за границу.Ранее они оба основали российскую социальную сеть «ВКонтакте», но в 2014 году отказались от нее, так как она была захвачена союзниками президента Путина. Павел Дуров продал оставшуюся долю в ВК и покинул Россию, сопротивляясь давлению властей. Утверждается, что целью предприятия не является получение прибыли, но в настоящее время оно не имеет структуры некоммерческой организации.
1.3 Что является фоном?
Telegram — бесплатное приложение без рекламы , которое в будущем будет финансироваться за счет пожертвований.Сервис доступен для всех распространенных платформ и конкурирует с другими мобильными мессенджерами, такими как WhatsApp и Facebook Messenger. По загрузкам приложений Telegram значительно опережает конкурентов Signal и Wickr, но все же значительно отстает от WhatsApp и Facebook.
В январе 2021 года было объявлено, что у Telegram ежемесячно 500 миллионов активных пользователей, которые отправляют десятки миллиардов сообщений каждый день. Программный код клиентов Telegram в основном находится в свободном доступе. Для сервера предлагается открытый программный интерфейс (API).
2. Основные функции Telegram-бота
2.1 Что делает Telegram Bot?
Telegram Bot — это программа, которая ведет себя как обычный партнер в чате с дополнительными функциями. Он выполняет заранее определенные задачи независимо и без участия пользователя. Термин «бот» происходит от термина «робот».
2.2 Что отправляет мессенджер?
Бот Telegram в основном может делать все, что делает человек-партнер по чату.Автоматически или по запросу он может отправить вам следующую информацию:
- Текстовые сообщения
- Изображения
- Видео
- Любые другие файлы
2.3 В чем его особенность?
Важной функцией бота Telegram является возможность выполнять команды в чате Telegram, которые затем напрямую запускают действия или запрашивают информацию. Например, можно отправить боту команду «/ help» или «/ help», которая затем выводит команды, возможные для этого бота в чате, в виде текстовой обратной связи.Это может быть следующий список команд:
- / статус
- / температура
- / последний аварийный сигнал
- / остановка
2.4 Где живет Telegram Bot?
Telegram хранит все данные, то есть все чаты, а также ботов, зашифрованные в облаке. Таким образом, внешнее резервное копирование данных Telegram не является абсолютно необходимым, и все личные настройки доступны зарегистрированным пользователям на разных платформах в любое время и в любом месте.Однако конфиденциальные данные и команды, к которым бот затем обращается извне, могут быть доступны за пределами облака, например на локальных серверах, принадлежащих компании, в их собственных базах данных.
2.5 Кто может пользоваться функционалом?
Обычные боты Telegram не являются приватными. Кто угодно может их найти и использовать. Однако боты Telegram могут быть доступны только определенным пользователям, если настроен отдельный канал связи с ботом. Этот канал является «частной» группой с ботом, к которой принадлежите только вы, одобренные вами пользователи и сам бот.Таким образом, Telegram Bot может использоваться только группой пользователей, контролируемой вами.
2.6 Как называется Telegram Bot?
Бота Telegram всегда можно четко идентифицировать по суффиксу «бот». Например, «@weatherbot», «@ARD_tagesschau_Bot» или «@mein_erster_test_bot».
2.7 Может стать личным помощником?
Многие из нас восхищаются Интернетом вещей (IoT), и именно здесь появляется Telegram Bot. Он может в определенных вами средах удобно информировать и реагировать.Telegram может не только обеспечивать общение между людьми, но с помощью Telegram Bot он также может обеспечивать общение между людьми и программируемыми машинами. Таким образом, мы можем пересылать сообщения на несколько устройств одним щелчком мыши или получать их от вас.
2.8 Как найти ботов Telegram?
Общедоступных ботов можно найти либо с помощью функции поиска пользователей Telegram (например, вы можете ввести «tagesschau» в поиске, чтобы найти бота Tagesschau-Telegram), либо в сторонних каталогах или обзорах в Интернете (например, в Интернете.г. https://telegramchannels.me/ или https://telegramic.org/bots/). Для приватных ботов они должны быть «приглашены» в приватную группу администратором бота Telegram.
2.9 Как вы с ним разговариваете?
Разговор с ботом Telegram происходит с помощью текстовых команд, определенных во время создания или программирования, которые всегда начинаются с символа «/». Это могут быть такие команды, как, например,
- / начало
- / конец сигнала
- / статус
- / последняя ошибка
Команда «/ help» всегда дает обзор возможных команд.
3. Насколько безопасен Telegram Bot?
3.1 Где работает бот?
Если рассматривать Telegram Bot в контексте источника данных, фактические данные обычно остаются на локальных серверах источника данных. Бот получает доступ к необходимым наборам данных там, а затем подготавливает их для вывода сообщения в соответствии с запросом на конечном устройстве. Как указано в 2.4, только фактическая структура программы постоянно находится в облаке на серверах Telegram.
3.2 Насколько высока безопасность приложения?
Настоящее бот-приложение Telegram с соответствующими данными хранится на его собственных компьютерах и в базах данных. Здесь безопасность приложения зависит от администратора локальной среды ПК на сайте. Telegram Bot доставляет только сообщения, определенные в приложении, на соответствующие конечные устройства. Только эти выходные сообщения затем размещаются в облаке Telegram.
3.3 Как шифруются данные Telegram?
Все сообщения и, следовательно, связь с ботом защищены с помощью шифрования клиент-сервер / сервер-клиент.В Telegram Cloud эти данные также разделяются между несколькими серверами и хранятся там в зашифрованном виде.
4. Могу ли я сам создать Telegram-бота?
4.1 Как я могу подписаться?
Чтобы создать Telegram Bot самостоятельно, все, что вам нужно сделать, это установить приложение Telegram на устройство и войти в систему. Вы можете найти приложение Telegram для мобильных устройств в магазинах приложений (например, Google Play Store или Apple App Store), а также для других устройств, например. на официальном сайте Telegram https: // telegram.org /.
4.2 Как создать бота?
Фактически создать собственного бота, как правило, очень просто. Вас поддерживает виртуальный пользователь Botfather, который является основным инструментом разработки ботов Telegram. Итак, сначала вам нужно найти этого пользователя в Telegram и начать с ним чат. Убедитесь, что вы выбрали проверенного (с синей галочкой) пользователя.
4.2.1 Что такое Botfather?
The Botfather (название является намеком на мафиозную эпопею «Крестный отец» — основанную на романе Марио Пьюзо и успешно снятую в трех частях с Марлоном Брандо в роли «Крестного отца» из 1972 года), по сути, является ботом Telegram и отвечает к командам.Он помогает в создании собственного бота, например, упорядочивает уникальные имена ботов и назначает права доступа для программирования.
4.2.2 Как мне настроить моего бота? (Краткое руководство)
Начните с ввода команды «/ newbot» в виде текстового сообщения в чате с отцом бота. Теперь вы должны дать своему боту имя, например «Мой первый бот для тестирования». Затем запрашивается имя пользователя бота. Это должно заканчиваться словом «бот». В нашем случае, например, «my_first_test_bot».Теперь отец-бот должен поздравить вас с установкой нового бота и сообщить адрес и личный «токен». Это, так сказать, пароль для полного управления ботом. На этом базовая настройка бота Telegram завершена. Теперь бота нужно только наполнить функционалом или запрограммировать.
4.3 Как программируется Telegram Bot?
4.3.1 Какие языки программирования доступны для программирования ботов?
В принципе, можно использовать все языки программирования, которые работают на сервере и могут отвечать на запросы через HTTPS.Вот несколько популярных языков программирования, которые часто используются для веб-разработки и разработки приложений:
- JavaScript (node.js)
- Ява / Котлин
- PHP
- C #
- Python
- Swift
- Рубин
При выборе языка программирования для разработки ботов в игру вступают разные моменты: насколько «хорошо» они или их команда знают соответствующий язык программирования? Какие инструменты программирования доступны или к каким библиотекам можно получить доступ?
4.3.2 Что предлагает опция OPC Router?
С коммуникационной платформой OPC Router Telegram Bot может быть создан всего несколькими щелчками мыши без сложного программирования. Благодаря подключаемому модулю OPC Router Telegram Bot, бот реализуется с помощью простой графической конфигурации. Сообщения из других подключаемых модулей (SAP, OPC, MQTT и т. Д.) Могут быть легко отправлены боту, а затем отправлены зарегистрированным пользователям чата. Создание команд возможно посредством простого создания триггеров в проекте OPC Router.Таким образом, вы можете создать Telegram Bot для своей собственной системы всего за несколько минут.
Вы можете найти видео с программированием на нашей странице надстройки Telegram.
4.4 Какие расходы я понесу?
Использование бота Telegram, как и использование самого Telegram, бесплатно. Разумеется, при самостоятельной разработке необходимо учитывать только возможные затраты на приобретение языков программирования, инструментов или интерфейсов для подключения к машинам.
5. Примеры ботов Telegram в отрасли
5.1 Как можно использовать бота Telegram для управления ресурсами?
В индустрии литья под давлением, например, бот Telegram может отправить автоматическое сообщение на смартфон, когда уровень пластикового гранулята, необходимого для производства литьевых изделий, падает ниже определенного уровня. Таким образом, можно заблаговременно отреагировать на повторный заказ или дополнительную поставку и исключить простои из-за нехватки материала.
5.2 Какую машинную информацию может передавать бот Telegram?
Соответствующие машинные данные, такие как информация о температуре или давлении, могут регулярно отправляться через Telegram Bot на планшеты, смартфоны или рабочие станции ПК руководителей отделов. Таким образом, для этой группы пользователей в любое время возможен полный обзор производства машин.
5.3 Как я могу использовать функции для сообщений о неисправностях или сигналов тревоги?
Эффективные системы сообщений о неисправностях или тревогах с подключением к смартфону можно настроить через бота.Для этого сообщения об ошибках, которые управляются, генерируются и хранятся в базе данных SQL, например, отправляются зарегистрированным клиентам Telegram через бота. Маршрутизатор OPC также может предлагать команды клиентам, чтобы можно было разработать функции подтверждения сообщений об ошибках и комментариев. Благодаря доступу подключаемых модулей Telegram к данным SQL пользователю Telegram также могут быть предложены запросы, например, для доступа к подробным данным о сообщениях об ошибках.
5.4 Какую информацию об обслуживании может отправлять мне бот Telegram?
Если функциональность производственных машин достигает определенных предопределенных пороговых значений, бот Telegram может автоматически генерировать рекомендации по обслуживанию и отправлять их соответствующим операторам машин.Таким образом можно избежать отказов, связанных с техническим обслуживанием, и заранее эффективно спланировать простои.
Сводка
Бот Telegram — полезное дополнение к умному общению, особенно в профессиональных сферах. По сравнению с наиболее популярными сервисами обмена сообщениями Telegram предлагает дополнительные преимущества при обмене информацией с помощью специальных запросов и действий бота, перечисленных в нашей статье. Однако, как и любое программирование, Telegram обычно требует конкретных знаний в области программирования для широкого использования.Маршрутизатор OPC Router — это рекомендуемый инструмент, который чрезвычайно упрощает именно это сложное программирование, особенно для использования в промышленности и для подключения машин.
Будьте осторожны при использовании ботов в Telegram
Приложение для безопасного обмена сообщениями Telegram имеет важное значение по двум очень разным причинам. Во-первых, приложение представляет собой инструмент зашифрованной связи для сотен миллионов пользователей по всему миру, особенно тех, кто хочет избежать государственного надзора и цензуры в таких странах, как Россия и Иран.Во-вторых, многие эксперты по криптографии ставят под сомнение целостность схемы шифрования Telegram. Новый отчет Forcepoint об использовании ботов в Telegram имеет значение как для пользователей Telegram, так и для его критиков.
Боты Telegram — это небольшие программы, которые можно встраивать в чаты Telegram или общедоступные каналы и выполнять определенную функцию. Они могут предлагать настраиваемые клавиатуры, создавать мемы с кошками по запросу или даже принимать платежи и действовать как цифровая витрина.Боты популярны в Telegram, потому что они забавны и удобны, и Telegram поддерживает их с 2015 года. По сути, это автоматизированные учетные записи Telegram; вы можете просто добавить их в чаты и каналы, как друга. Но, исследуя платформу ботов, Forcepoint понял, что эта функция не включает алгоритм шифрования, который Telegram использует для защиты своих чатов. В результате добавление бота в чат или канал подрывает его безопасность, потенциально облегчая перехват сообщений третьей стороной.
«Это то, что влияет на вас, если вы управляете ботом или находитесь в канале с ботами», — говорит Люк Сомервилл, руководитель отдела специальных расследований Forcepoint. «Честно говоря, нас удивило то, что мы поняли, что безопасность ботов сильно отличается от того, как работает обычный обмен сообщениями».
В частности, боты Telegram не используют MTProto, протокол шифрования Telegram, который создает структуру, в которой сообщения пользователей друг другу зашифрованы и неразборчивы при передаче между устройствами отправителя и получателя.Хотя на протяжении многих лет исследователи выражали различные опасения по поводу MTProto — Telegram утверждает, что это нормально, — если вы доверяете Telegram свои безопасные коммуникации, вы доверяете MTProto.
Но платформа ботов Telegram вместо этого полагается на протокол безопасности транспортного уровня, используемый в веб-шифровании HTTPS. TLS отлично подходит для многих вещей, но недостаточно надежен, чтобы выступать в качестве единственного шифрования в службе безопасной связи, предназначенной для обеспечения расширенной защиты. Вот почему такие приложения, как Signal и WhatsApp, используют протокол Signal, а Telegram имеет MTProto.Однако, создавая свою бот-платформу без MTProto, Telegram создает ситуацию, когда введение бота в чат или канал существенно снижает его шифрование.
Forcepoint сделал открытие неожиданным образом. Исследователи безопасности ранее обнаружили ботов Telegram, которые управляют вредоносными приложениями Android и даже извлекают данные из чатов Telegram через API ботов Telegram, используемый разработчиками. Глубокая интеграция ботов в приложение делает их популярными пешками в стратегиях атак.Изучая одну из таких схем вредоносного ПО, Forcepoint случайно обнаружил, что чаты Telegram с участием ботов снижают безопасность.
Исследователи исследовали образец вредоносного ПО для удаленного управления, получившего название GoodSender, и определили механизм в коде, который ожидал команд от бота Telegram. Вредоносная программа включала в себя две части идентификационной и аутентификационной информации Telegram — токен API бота и идентификатор чата — которые используются для направления запросов ботов в нужные чаты.Вооружившись этими деталями, исследователи поняли, что они могут создавать запросы API, которые по сути воспроизводят все коммуникации между автором вредоносной программы и его ботом. Поскольку хакер совершил ошибку, выполнив все свое тестирование и развертывание в одной настройке бота (вместо того, чтобы замести следы с помощью нескольких учетных записей), исследователи смогли изучить, как он настроил, протестировал и, в конечном итоге, начал развертывание вредоносного ПО. .
В то время как исследователи Forcepoint использовали Telegram API для отслеживания сообщений хакерского бота в рамках благонамеренного анализа защиты, они подчеркивают, что кто-то другой может использовать тот же метод для лечения болезни и оглядываться на весь разговор, в котором присутствует бот. .И даже тот, у кого нет API-токена чата и идентификатора чата из образца вредоносного ПО, потенциально может извлечь их другими способами. Обе части информации встроены в каждое сообщение Telegram, поэтому боты могут знать, какие данные или сервис отправлять в какой чат.
Как создать бота Telegram
Чат-боты часто рекламируются как революция в способах взаимодействия пользователей с технологиями и бизнесом. У них довольно простой интерфейс по сравнению с традиционными приложениями, поскольку они требуют от пользователей только общения в чате, а чат-боты должны понимать и делать все, что от них требует пользователь, по крайней мере теоретически.
Многие отрасли переводят обслуживание клиентов на системы чат-ботов. Это связано с огромным падением стоимости по сравнению с реальными людьми, а также из-за надежности и постоянной доступности. Чат-боты обеспечивают определенную поддержку пользователей без существенных дополнительных затрат.
Сегодня чат-боты используются во многих сценариях, начиная от черных задач, таких как отображение времени и данных о погоде, до более сложных операций, таких как элементарная медицинская диагностика и общение с клиентами / поддержка.Вы можете разработать чат-бота, который поможет вашим клиентам, когда они задают определенные вопросы о вашем продукте, или вы можете создать чат-бота личного помощника, который сможет выполнять основные задачи и напоминать вам, когда пора идти на встречу или в тренажерный зал.
Существует множество вариантов развертывания чат-бота, и одним из наиболее распространенных вариантов использования являются платформы социальных сетей, поскольку большинство людей используют их на регулярной основе. То же самое можно сказать и о приложениях для обмена мгновенными сообщениями, хотя и с некоторыми оговорками.
Telegram — одна из наиболее популярных сегодня платформ обмена мгновенными сообщениями, поскольку она позволяет хранить сообщения в облаке, а не только на вашем устройстве, и может похвастаться хорошей многоплатформенной поддержкой, так как Telegram можно использовать на Android, iOS, Windows и просто о любой другой платформе, которая может поддерживать веб-версию. Создать чат-бота в Telegram довольно просто и требуется несколько шагов, которые займут очень мало времени. Чат-бот может быть интегрирован в группы и каналы Telegram, а также работает сам по себе.
В этом уроке мы создадим бота Telegram, который предоставит вам изображение аватара из Adorable Avatars. Наш пример будет включать создание бота с использованием Flask и его развертывание на бесплатном сервере Heroku.
Для выполнения этого руководства вам понадобится Python 3, установленный в вашей системе, а также навыки программирования на Python. Кроме того, хорошее понимание того, как работают приложения, было бы хорошим дополнением, но не обязательным, так как мы подробно рассмотрим большую часть того, что мы представляем. Вам также необходимо установить Git в вашей системе.
Конечно, для этого учебника также требуется учетная запись Telegram, которая бесплатна. Вы можете зарегистрироваться здесь. Также требуется учетная запись Heroku, и вы можете получить ее бесплатно здесь.
Как оживить вашего Telegram-бота
Чтобы создать чат-бота в Telegram, вам необходимо связаться с BotFather, который по сути является ботом, используемым для создания других ботов.
Вам нужна команда / newbot
, которая ведет к следующим шагам для создания вашего бота:
У вашего бота должно быть два атрибута: имя и имя пользователя.Имя будет отображаться для вашего бота, а имя пользователя будет использоваться для упоминаний и обмена.
После выбора имени бота и имени пользователя, которое должно заканчиваться на «бот», вы получите сообщение, содержащее ваш токен доступа, и вам, очевидно, потребуется сохранить свой токен доступа и имя пользователя на будущее, так как они вам понадобятся.
Код логики чат-бота
В этом руководстве мы будем использовать Ubuntu. Для пользователей Windows большинство команд здесь будут работать без каких-либо проблем, но если у вас возникнут какие-либо проблемы с настройкой виртуальной среды, обратитесь по этой ссылке.Что касается пользователей Mac, это руководство должно работать нормально.
Во-первых, давайте создадим виртуальную среду. Это помогает изолировать требования вашего проекта от глобальной среды Python.
$ python -m venv botenv /
Теперь у нас будет каталог botenv /
, который будет содержать все библиотеки Python, которые мы будем использовать. Идите вперед и активируйте virtualenv
, используя следующую команду:
$ источник botenv / bin / activate
Библиотеки, которые нам нужны для нашего бота:
Вы можете установить их в виртуальной среде с помощью следующей команды pip:
(телебот) $ pip install flask
(Telebot) $ pip установить python-telegram-bot
(Telebot) запросы на установку $ pip
Теперь давайте просмотрим каталог нашего проекта.
.
├── app.py
├── телебот
│ ├── credentials.py
│ | .
│ | вы можете построить свой двигатель здесь
│ | .
│ └── __init__.py
└── ботенв
В файле credentials.py
нам понадобятся три переменные:
bot_token = "вот ваш токен доступа от BotFather"
bot_user_name = "введенное вами имя пользователя"
URL = "ссылка на приложение heroku, которую мы создадим позже"
Теперь вернемся к нашему app.py и пошагово пройдемся по коду:
# импортировать все
из фляги импорт фляги, запрос
импортная телеграмма
от телебота.импорт учетных данных bot_token, bot_user_name, URL
глобальный бот
глобальный ТОКЕН
TOKEN = bot_token
bot = telegram.Bot (токен = ТОКЕН)
Теперь у нас есть объект бота, который будет использоваться для любого действия, которое мы требуем от бота.
# запустить приложение Flask
app = Flask (__ имя__)
Нам также нужно привязать функции к определенным маршрутам. Другими словами, нам нужно указать Flask, что делать при вызове определенного адреса. Более подробную информацию о Flask и маршрутах можно найти здесь.
В нашем примере функция маршрута отвечает на URL-адрес, который в основном представляет собой / {token}
, и это URL-адрес, который Telegram будет вызывать для получения ответов на сообщения, отправленные боту.
@ app.route ('/ {}'. Format (TOKEN), methods = ['POST'])
def response ():
# получить сообщение в JSON и затем преобразовать его в объект Telegram
update = telegram.Update.de_json (request.get_json (force = True), бот)
chat_id = update.message.chat.id
msg_id = update.message.message_id
# Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с Unicode
текст = обновление.message.text.encode ('utf-8'). decode ()
# только для отладки
print ("получил текстовое сообщение:", текст)
# при первом общении с ботом AKA приветственное сообщение
если text == "/ start":
# распечатать приветственное сообщение
bot_welcome = "" "
Добро пожаловать в бот coolAvatar, бот использует службу http://avatars.adorable.io/ для создания крутых аватаров на основе введенного вами имени, поэтому введите имя, и бот ответит аватаром на ваше имя.
"" "
# отправить приветственное сообщение
бот.sendMessage (chat_id = chat_id, text = bot_welcome, reply_to_message_id = msg_id)
еще:
пытаться:
# очистить полученное сообщение от всех не алфавитов
text = re.sub (r "\ W", "_", текст)
# создать ссылку api для аватара на основе http://avatars.adorable.io/
url = "https://api.adorable.io/avatars/285/{}.png" .format (text.strip ())
# ответьте фотографией на имя, отправленное пользователем,
# обратите внимание, что вы можете отправлять фотографии по URL-адресу, и Telegram получит их за вас
бот.sendPhoto (chat_id = chat_id, photo = url, reply_to_message_id = msg_id)
кроме исключения:
# если что-то пошло не так
bot.sendMessage (chat_id = chat_id, text = "Возникла проблема с именем, которое вы использовали, введите другое имя", reply_to_message_id = msg_id)
верни "ок"
Интуитивно понятный способ заставить эту функцию работать заключается в том, что мы будем вызывать ее каждую секунду, чтобы она проверяла, пришло ли новое сообщение, но мы не будем этого делать. Вместо этого мы будем использовать Webhook, который позволяет боту вызывать наш сервер всякий раз, когда вызывается сообщение, так что нам не нужно заставлять наш сервер страдать во время цикла ожидания сообщения.
Итак, мы создадим функцию, которую нам самим нужно вызывать для активации Webhook Telegram, по сути говоря, что Telegram должен вызывать определенную ссылку при поступлении нового сообщения. Мы вызовем эту функцию только один раз при первом создании бота. Если вы измените ссылку на приложение, вам нужно будет снова запустить эту функцию с новой ссылкой, которая у вас есть.
Маршрут здесь может быть любым; вы тот, кто будет называть это:
@ app.route ('/ setwebhook', methods = ['GET', 'POST'])
def set_webhook ():
# мы используем объект бота, чтобы связать бота с нашим приложением, которое
# в ссылке, предоставленной URL
s = бот.setWebhook ('{URL} {HOOK}'. format (URL = URL, HOOK = TOKEN))
# что-нибудь, чтобы сообщить нам, что все работает
если s:
верните "webhook setup ok"
еще:
вернуть "сбой настройки веб-перехватчика"
Теперь, когда все настроено, давайте просто создадим красивую домашнюю страницу, чтобы мы знали, что движок запущен.
@ app.route ('/')
def index ():
возвращение '.'
если __name__ == '__main__':
# обратите внимание на резьбовой аргумент, который позволяет
# ваше приложение должно иметь более одного потока
app.run (thread = True)
Давайте посмотрим на полную версию приложения.py:
импорт ре
из фляги импорт фляги, запрос
импортная телеграмма
from telebot.credentials import bot_token, bot_user_name, URL
глобальный бот
глобальный ТОКЕН
TOKEN = bot_token
bot = telegram.Bot (токен = ТОКЕН)
app = Flask (__ имя__)
@ app.route ('/ {}'. format (TOKEN), methods = ['POST'])
def response ():
# получить сообщение в JSON и затем преобразовать его в объект Telegram
update = telegram.Update.de_json (request.get_json (force = True), бот)
chat_id = update.message.chat.id
msg_id = обновить.message.message_id
# Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с Unicode
текст = update.message.text.encode ('utf-8'). decode ()
# только для отладки
print ("получил текстовое сообщение:", текст)
# при первом общении с ботом AKA приветственное сообщение
если text == "/ start":
# распечатать приветственное сообщение
bot_welcome = "" "
Добро пожаловать в бот coolAvatar, бот использует службу http://avatars.adorable.io/ для создания крутых аватаров на основе введенного вами имени, поэтому введите имя, и бот ответит аватаром на ваше имя."" "
# отправить приветственное сообщение
bot.sendMessage (chat_id = chat_id, text = bot_welcome, reply_to_message_id = msg_id)
еще:
пытаться:
# очистить полученное сообщение от всех не алфавитов
text = re.sub (r "\ W", "_", текст)
# создать ссылку api для аватара на основе http://avatars.adorable.io/
url = "https://api.adorable.io/avatars/285/{}.png" .format (text.strip ())
# ответьте фотографией на имя, отправленное пользователем,
# обратите внимание, что вы можете отправлять фотографии по URL-адресу, и Telegram получит их за вас
бот.sendPhoto (chat_id = chat_id, photo = url, reply_to_message_id = msg_id)
кроме исключения:
# если что-то пошло не так
bot.sendMessage (chat_id = chat_id, text = "Возникла проблема с именем, которое вы использовали, введите другое имя", reply_to_message_id = msg_id)
верни "ок"
@ app.route ('/ set_webhook', methods = ['GET', 'POST'])
def set_webhook ():
s = bot.setWebhook ('{URL} {HOOK}'. format (URL = URL, HOOK = TOKEN))
если s:
верните "webhook setup ok"
еще:
вернуть "сбой настройки веб-перехватчика"
@приложение.маршрут('/')
def index ():
возвращение '.'
если __name__ == '__main__':
app.run (thread = True)
Это последний фрагмент кода, который вы напишете в нашем руководстве. Теперь мы можем перейти к последнему шагу, запустив наше приложение на Heroku.
Запустите наше приложение на Heroku
Нам нужно кое-что, прежде чем мы создадим наше приложение.
Heroku не может знать, какие библиотеки использует ваш проект, поэтому мы должны сообщить ему об этом с помощью файла requirements.txt
— распространенная проблема заключается в том, что вы неправильно написали требования, поэтому будьте осторожны — чтобы сгенерировать файл требований с помощью pip:
pip freeze> требования.текст
Теперь у вас есть готовый файл требований.
Теперь вам нужен Procfile
, который сообщает Heroku, где запускается наше приложение, поэтому создайте файл Procfile
и добавьте следующее:
Интернет: Gunicorn app: app
Шаг возврата: вы можете добавить файл .gitignore
в свой проект, чтобы неиспользуемые файлы не загружались в репозиторий.
На панели управления Heroku создайте новое приложение. Как только вы это сделаете, он направит вас на страницу Deploy .Затем откройте вкладку Settings в новом окне и скопируйте домен приложения, который будет выглядеть примерно так: https://appname.herokuapp.com/
, и вставьте его в переменную URL внутри credentials.py
.
Теперь вернитесь на вкладку Deploy и выполните шаги:
Примечание. Пользователи Windows и macOS могут выполнить действия, описанные здесь.
Войти в Heroku:
$ heroku войти
Обратите внимание, что этот метод иногда застревает в в ожидании входа в систему
, если это произойдет с вами, попробуйте войти, используя:
$ heroku логин -i
Инициализировать репозиторий Git в нашем каталоге:
$ git init
$ heroku git: remote -a {имя-проекта-героя}
Развернуть приложение:
$ git add.$ git commit -m "первая фиксация"
$ git push герой мастер
На этом этапе вы увидите прогресс строительства в вашем терминале. Если все прошло нормально, вы увидите что-то вроде этого:
пульт: -----> Запуск ...
удаленный: выпущена v6
удаленный: https://project-name.herokuapp.com/ развернут на Heroku
дистанционный пульт:
удаленный: проверка развертывания ... выполнено.
Теперь перейдите на страницу приложения (ссылка домена, который вы скопировали ранее) и добавьте в конец ссылки / setwebhook
, чтобы адрес был примерно таким, как https: // имя приложения.herokuapp.com/setwebhook
. Если вы видите webhook setup ok
, это означает, что вы готовы к работе!
Теперь поговорите со своим ботом
Живая версия бота
Последние штрихи, советы и хитрости
Теперь у вас есть бот Telegram, работающий круглосуточно и без выходных. Вы можете добавить к боту любую логику, которую хотите, так, например, вы можете сделать своего бота более реалистичным, добавив статус «печатает» и отправив статус фотографии следующим образом:
Следующий фрагмент кода из функции response ()
:
если text == "/ start":
# распечатать приветственное сообщение
bot_welcome = "" "
Добро пожаловать в бот coolAvatar, бот использует сервис из http: // avatars.adorable.io/, чтобы создавать крутые аватары на основе введенного вами имени, поэтому введите имя, и бот ответит аватаром для вашего имени.
"" "
# отправить приветственное сообщение
bot.sendChatAction (chat_id = chat_id, action = "typing")
сон (1.5)
bot.sendMessage (chat_id = chat_id, text = bot_welcome, reply_to_message_id = msg_id)
еще:
пытаться:
# очистить полученное сообщение от всех не алфавитов
text = re.sub (r "\ W", "_", текст)
# создать ссылку api для аватара на основе http: // avatars.adorable.io/
url = "https://api.adorable.io/avatars/285/{}.png" .format (text.strip ())
# ответьте фотографией на имя, отправленное пользователем,
# обратите внимание, что вы можете отправлять фотографии по URL-адресу, и Telegram получит их за вас
bot.sendChatAction (chat_id = chat_id, action = "upload_photo")
сон (2)
bot.sendPhoto (chat_id = chat_id, photo = url, reply_to_message_id = msg_id)
кроме исключения:
# если что-то пошло не так
bot.sendMessage (chat_id = chat_id, text = "Возникла проблема с именем, которое вы использовали, введите другое имя", reply_to_message_id = msg_id)
Как вы можете видеть во фрагменте, мы добавили действие ввода, когда мы собираемся отправить информацию о боте в текстовом формате, и добавили действие загрузки фотографии, когда мы собираемся отправить фотографию, чтобы сделать бота больше реалистично.Больше действий можно найти здесь.
Вы также можете изменить изображение и описание бота из канала BotFather, чтобы сделать его более удобным.
Еще много простых примеров ботов для телеграмм можно найти на странице python-telegram-bot на GitHub.
Вы можете развить нашего бота и сделать его следующим супер-ИИ-ботом — все, что вам нужно сделать, это интегрировать свою логику в функцию response ()
. Например, ваша логика может быть в отдельном модуле и может вызываться внутри функции response ()
следующим образом:
.├── app.py
├── телебот
│ ├── credentials.py
│ ├──ai.py
│ | .
│ | вы можете построить свой двигатель здесь
│ | .
│ └── __init__.py
└── ботенв
И внутри ai .py:
def generate_smart_reply (текст):
# здесь мы можем делать всю нашу работу
верните "это умный ответ от ai!"
Импортируйте его сейчас в приложение .py:
импорт ре
от времени импортный сон
из фляги импорт фляги, запрос
импортная телеграмма
С телебота.AI импорт generate_smart_reply
from telebot.credentials import bot_token, bot_user_name, URL
Затем просто вызовите его внутри кода response ()
.
def response ():
# получить сообщение в JSON и затем преобразовать его в объект Telegram
update = telegram.Update.de_json (request.get_json (force = True), бот)
chat_id = update.message.chat.id
msg_id = update.message.message_id
# Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с Unicode
текст = обновление.message.text.encode ('utf-8'). decode ()
# только для отладки
print ("получил текстовое сообщение:", текст)
# здесь позвони своему умному ответному сообщению
reply = generate_smart_reply (текст)
bot.sendMessage (chat_id = chat_id, text = reply, reply_to_message_id = msg_id)
Теперь ваш бот может работать так, как вы хотите — вперед и создайте следующую большую вещь!
Надеюсь, вам понравилось создавать своего первого бота для Telegram.
Дополнительные ресурсы
Как создать чат-бота Telegram
Чат-бот — это автоматизированный многофункциональный помощник, который может принимать отправленные и отправленные инициированные сообщения, а с помощью SendPulse ваш бот может сохранять информацию в виде переменных для дальнейшего использования.
Следуйте пошаговой инструкции, чтобы создать своего первого чат-бота для мессенджера Telegram, или подключите существующего к SendPulse для дальнейшей настройки.
Если у вас уже есть бот, пропустите первый абзац и посмотрите следующий раздел.
Как создать нового бота для Telegram
Откройте мессенджер Telegram, войдите в свою учетную запись или создайте новую.
Шаг 1. Введите @Botfather во вкладке поиска и выберите этого бота.
Обратите внимание, у официальных ботов Telegram рядом с их именем есть синяя галочка
Нажмите «Пуск», чтобы активировать бота BotFather.
В ответ вы получите список команд для управления ботами.
Шаг 2 . Выберите или введите команду / newbot
и отправьте ее.
Шаг 3. Выберите имя для вашего бота — ваши подписчики увидят его в разговоре.И выберите логин для своего бота — бота можно будет найти в поиске по логину. Имя пользователя должно быть уникальным и заканчиваться словом «бот».
После того, как вы выбрали подходящее имя для своего бота — бот создан. Вы получите сообщение со ссылкой на вашего бота t.me/
Для подключения бота к SendPulse необходим токен.Скопируйте значение токена и найдите дополнительную информацию о подключении бота к SendPulse в последнем разделе этой статьи.
Как найти токен для существующего бота
Шаг 1. Перейдите к боту @BotFather и отправьте команду / token
.
Вы увидите кнопки со всеми созданными вами ботами.
Шаг 2. Выберите тот, для которого вам нужен токен, чтобы вы могли подключить его к Sendpulse.
Скопируйте значение токена.
Как подключить бота к SendPulse
Перейдите в раздел «Чат-боты» в своей учетной записи SendPulse. Если вы впервые посещаете эту страницу и не подключили чат-ботов, нажмите кнопку «Подключить каналы». Если вы уже подключали ботов раньше — перейдите на вкладку «Основные» и нажмите кнопку «Управление ботами».
Затем выберите Telegram и нажмите кнопку «Включить Telegram».
Введите свой токен от нужного бота и нажмите «Подключиться».
В следующем окне нажмите кнопку «Подписаться».
Вы будете перенаправлены в приложение Telegram, нажмите кнопку «Пуск», и вы будете подписаны на своего бота.
Поздравляем! Вы успешно добавили своего чат-бота в SendPulse.
Вы можете выбрать своего бота и начать создавать приветственные и запускаемые потоки или массовые кампании.
Обратите внимание, существующие подписчики не импортируются в аудиторию вашего чат-бота SendPulse. После подключения бота вы можете собирать подписчиков с помощью виджета веб-сайта или напрямую делиться ссылкой на своего бота t.me/
Подключите своего бота Telegram
Последнее обновление: 27.11.2020
Как добавить бота в Telegram
Особенность, которая выделяет популярное приложение для обмена мгновенными сообщениями Telegram, — это возможность использовать ботов в групповых чатах. Их цель — существенно улучшить возможности Telegram за счет удобства и развлечения. Если вы являетесь администратором супергруппы и хотите знать, как добавить бота, мы рассмотрели инструкции в этой статье.
Мы будем добавлять ботов в чат-группы через разные операционные системы, узнавать больше об их полезности и о том, чем они отличаются от людей в чатах.Кроме того, в наших часто задаваемых вопросах рассказывается, как создать собственного уникального бота.
Как добавить ботов в Telegram?
Бот Telegram — это стороннее приложение, используемое для улучшения своей функциональности, выполняя определенные функции, следуя инструкциям и взаимодействуя с другими участниками. В следующих разделах приведены шаги по добавлению бота в супергруппу.
Добавить бота в чат супергруппы с помощью iPhone
- Запустите приложение Telegram.
- В нижней части экрана щелкните значок Контакты.
- Вверху экрана щелкните строку поиска.
- Введите имя бота, которого хотите добавить @ [botname].
- Нажмите на имя бота, чтобы отобразить его в чате.
- В правом верхнем углу окна чата выберите изображение профиля бота.
- Найдите и выберите опцию «Добавить в группу» под опцией «Отправить сообщение», чтобы получить доступ к списку групп, в которые нужно добавить участников.
- Выберите группу, в которую хотите добавить бота.
- Щелкните «Да» для подтверждения.
Добавить бота в чат супергруппы с помощью Android
- Запустите приложение Telegram.
- В нижней части экрана щелкните значок Контакты.
- Вверху экрана щелкните строку поиска.
- Введите имя бота, которого хотите добавить @ [botname].
- Нажмите на имя бота, чтобы отобразить его в чате.
- В правом верхнем углу окна чата выберите изображение профиля бота.
- Найдите и выберите опцию «Добавить в группу» под опцией «Отправить сообщение», чтобы получить доступ к списку групп, в которые нужно добавить участников.
- Выберите группу, в которую хотите добавить бота.
- Щелкните «Да» для подтверждения.
Добавление бота в чат супергруппы с помощью Mac
- Перейдите в папку «Приложения», чтобы найти и запустить приложение Telegram.
- В текстовом поле поиска в верхнем левом углу экрана введите имя бота, которого вы хотите добавить.
- Нажмите клавишу возврата, чтобы просмотреть список результатов поиска ботов, соответствующих вашему запросу.
- Нажмите на бота, которого хотите добавить в группу, бот откроется и отобразится справа.
- Чтобы открыть профиль бота, выберите его имя в верхней части окна.
- В правом верхнем углу окна выберите опцию «Добавить в группу».
- Выберите супергруппу, которую вы хотите добавить к боту.
- Нажмите «ОК» для подтверждения.
Добавление бота в чат супергруппы с помощью Windows 10
- Перейдите в меню Windows, чтобы найти и запустить приложение Telegram.
- В текстовом поле поиска в верхнем левом углу экрана введите имя бота, которого вы хотите добавить.
- Нажмите клавишу возврата, чтобы просмотреть список результатов поиска ботов, соответствующих вашему запросу.
- Нажмите на бота, которого хотите добавить в группу, бот откроется и отобразится справа.
- Чтобы открыть профиль бота, выберите его имя в верхней части окна.
- В правом верхнем углу окна выберите опцию «Добавить в группу».
- Выберите супергруппу, в которую вы хотите добавить бота.
- Нажмите «ОК» для подтверждения.
Бонусы для ботов
Использование ботов в Telegram может быть практичным:
- Ботов можно использовать в качестве виртуальных помощников для предоставления прогнозов погоды, предупреждений, перевода и других административных услуг.
- Боты могут доставлять релевантный контент, предоставляя настраиваемые новости и уведомления, как только они становятся доступными.
- Прием платежей за товары и услуги. Платежный API для ботов — это бесплатная платформа, на которой продавцы могут получать платежи от пользователей Telegram.
- Боты могут помочь создать социальные связи, объединяя людей, желающих общаться на основе общих интересов или близости.
- Боты могут интегрироваться с другими сервисами, такими как YouTube и музыкальные боты, для дополнительного развлечения.
- Боты предоставляют игры для нескольких и одного игрока, от простых головоломок до стратегических игр в реальном времени.
Чем боты отличаются от людей?
Ниже представлены различия между участниками-людьми и ботами в Telegram:
- Для ботов, работающих в режиме конфиденциальности, после добавления в группу они не будут получать сообщения, ранее отправленные группе.
- У них ограниченное облачное хранилище, поэтому старые обработанные сообщения сразу удаляются сервером.
- Боты не могут начинать разговоры с людьми. Они должны быть добавлены в группу, или пользователь должен сначала отправить им сообщение.
- Их имя пользователя всегда будет заканчиваться на «бот».
- Их метка отображается как «бот» без информации о времени последнего посещения или онлайн-статусе.
BotFather
«BotFather — единственный бот, который правит ими всеми.
BotFather — это бот, используемый для создания новых ботов и управления существующими через Telegram. Чтобы связаться с BotFather, вы можете либо найти его под именем пользователя @Botfather, либо перейти на https://telegram.me/botfather, чтобы начать разговор. BotFather представится, и вам будет доступна кнопка «Старт», чтобы вы могли ответить.
Дополнительные ответы на вопросы
Как удалить ботов в Telegram?
Чтобы удалить бота Telegram из списка бесед через Android:
Примечание. Удаление бота также приведет к удалению беседы.
1. Запустите приложение Telegram.
2. Нажмите и удерживайте имя бота, чтобы отобразить меню внизу экрана.
3. Выберите «Удалить и остановить».
4. Нажмите «ОК» для подтверждения.
1. Запустите приложение Telegram.
2. Найдите бота, которого хотите удалить, и проведите пальцем влево по беседе.
3. Щелкните значок «Удалить» из набора значков, которые выдвигаются справа.
4.Выберите «Удалить и остановить» из параметра, отображаемого в нижней части экрана.
Как добавить бота в группу Telegram?
Чтобы добавить бота в чат-группу с помощью устройства Android или iPhone:
1. Запустите приложение Telegram.
2. В нижней части экрана щелкните значок Контакты.
3. В верхней части экрана щелкните строку поиска.
4. Введите имя бота, которого вы хотите добавить, @ [botname].
5. Щелкните имя бота, чтобы отобразить его в чате.
6. В правом верхнем углу окна чата выберите изображение профиля бота.
7. Найдите и выберите опцию «Добавить в группу» под опцией «Отправить сообщение», чтобы получить доступ к списку групп, в которые нужно добавить участников.
8. Выберите группу, в которую вы хотите добавить бота.
9. Нажмите «Да» для подтверждения.
Чтобы добавить бота в чат-группу с помощью Mac или ПК:
1.Перейдите в папку «Приложения» (Mac) или в меню Windows (ПК), чтобы найти и запустить приложение Telegram.
2. В поле поиска в верхнем левом углу экрана введите имя бота, которого вы хотите добавить.
3. Нажмите клавишу возврата, чтобы просмотреть список результатов поиска ботов, соответствующих вашему запросу.
4. Нажмите на бота, которого хотите добавить в группу, бот откроется и отобразится справа.
5. Чтобы открыть профиль бота, выберите его имя в верхней части окна.
6. В правом верхнем углу окна выберите опцию «Добавить в группу».
7. Выберите супергруппу, в которую вы хотите добавить бота.
8. Нажмите «ОК» для подтверждения.
Как создать нового бота Telegram?
1. Сначала начните разговор с BotFather, выполнив поиск по имени пользователя @Botfather или перейдя на https://telegram.me/botfather.
2. Затем введите и отправьте команду « / newbot.
”
3. BotFather запросит имя и имя пользователя. Укажите понятное имя и уникальное имя пользователя.
· BotFather сгенерирует токен авторизации.
4. Скопируйте токен в буфер обмена и перейдите в раздел «Каналы» бота через портал Azure, затем нажмите «Telegram».
5. Вставьте токен авторизации в поле «Access Token», затем «Save».
· Ваш бот успешно создан; один и готов к общению с другими участниками Telegram.
· Включите «Встроенные запросы», чтобы пользователи могли вызывать вашего бота, вводя его имя пользователя и запрос в любой чат.
· Ознакомьтесь с руководством по API бота, чтобы узнать, чему вы можете научить своего бота.
Маленькие виртуальные помощники Telegram
Созданные на основе искусственного интеллекта боты в Telegram используются для улучшения обмена сообщениями, по сути, выполняя административные задачи, связывая людей и обеспечивая развлечения. Боты в приложениях для обмена сообщениями становятся все более распространенными, и возможность их использования доступна в нескольких популярных приложениях.
Теперь, когда вы знаете, как добавить бота в чат, создать бота и другую информацию о боте; Как вы думаете, бот проделал большую работу по повышению вашего опыта? Как бот обслужил группу — и работал ли он, как ожидалось? Сообщите нам, что вы думаете об использовании ботов в приложениях для обмена сообщениями, в разделе комментариев ниже.
Подключить Telegram бот
Подключить Telegram к открытому каналу Битрикс24 можно в несколько шагов с помощью бота Telegram Chat.
Перейдите в Conact Center> Telegram .Выберите открытый канал для подключения бота Telegram и нажмите Подключить .
Для подключения бота Telegram необходим токен доступа. Вы можете получить его при создании нового бота или запросить его для существующего:
Создать нового бота
Перейдите по ссылке и щелкните Открыть в Интернете или щелкните Отправить сообщение .
Щелкните Start .
Выберите команду для создания нового бота — / newbot .
Пришло время назвать своего бота, чтобы ваши клиенты могли найти его в Telegram. Это имя также отображается в списке контактов и каналов Telegram.
Введите имя пользователя вашего бота. Он должен заканчиваться на «бот».
Скопируйте свой токен доступа.
Вставьте токен доступа и щелкните Connect .
Запросить токен доступа к существующему боту
Если у вас уже есть бот Telegram, но вы не знаете токен доступа, вы можете запросить его. Перейдите по ссылке и выберите команду / токен .
Вам будут показаны все созданные вами боты. Выберите тот, который хотите подключить к открытому каналу в Битрикс24.
Скопируйте свой токен доступа и вставьте его в поле Access Token > щелкните Connect
Отключить группы
Отключите группы, чтобы запретить пользователям Telegram добавлять вашего бота Telegram в группы.
Введите команду / mybots > выберите своего бота из списка> щелкните Настройки бота .
Щелкните Разрешить группы?
Щелкните Отключить группы .
Готово! Telegram теперь подключен к вашему Битрикс24, и вы сможете общаться со своими клиентами в Битрикс24 Мессенджере.
Как это работает
Ваш клиент нажимает на виджет веб-сайта и отправляет вам сообщение через Telegram.
Вы получаете сообщение в мессенджере Битрикс24. Если этого клиента нет в базе данных CRM, создается новый лид.
История чата сохраняется в форме CRM.
Важные особенности подключения Telegram к Битрикс24:- Вы не можете создать более 20 ботов для одной учетной записи Telegram.
- Файлы размером более 20 МБ не могут быть отправлены из-за ограничений Telegram API.
- Если один и тот же токен доступа бота Telegram используется в нескольких учетных записях Битрикс24, этот бот Telegram будет работать только с учетной записью Битрикс24, которая была подключена к Telegram последней.
- Вы можете редактировать свои сообщения при общении в этом канале.
- Telegram не передает номер телефона клиента при общении с этим клиентом. Сохранить номер телефона клиента в CRM можно только в том случае, если он отправит сообщение, содержащее номер телефона.
Рекомендованные статьи:
.