Как создавать ботов в Telegram / Habr
24 июня разработчики Telegram открыли платформу для создания ботов. Новость кого-то обошла стороной Хабр, однако многие уже начали разрабатывать викторины. При этом мало где указаны хоть какие-то примеры работающих ботов.Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы к Telegram Bot API. Причем API довольное простое — бот обращается на определенный URL с параметрами, а Telegram отвечает JSON объектом.
Рассмотрим API на примере создания тривиального бота:
1. Регистрация
Прежде чем начинать разработку, бота необходимо зарегистрировать и получить его уникальный id, являющийся одновременно и токеном. Для этого в Telegram существует специальный бот — @BotFather.
Пишем ему /start и получаем список всех его команд.
Первая и главная — /newbot — отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя — оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.
Для начала работы этого уже достаточно. Особо педантичные могут уже здесь присвоить боту аватар, описание и приветственное сообщение.
Не забудьте проверить полученный токен с помощью ссылки api.telegram.org/bot<TOKEN>/getMe, говорят, не всегда работает с первого раза.
2. Программирование
Создавать бота буду на Python3, однако благодаря адекватности этого языка алгоритмы легко переносятся на любой другой.
Telegram позволяет не делать выгрузку сообщений вручную, а поставить webHook, и тогда они сами будут присылать каждое сообщение. Для Python, чтобы не заморачиваться с cgi и потоками, удобно использовать какой-нибудь реактор, поэтому я для реализации выбрал tornado.web. (для GAE удобно использовать связку Python2+Flask)
Каркас бота:
URL = "https://api.telegram.org/bot%s/" % BOT_TOKEN MyURL = "https://example.com/hook" api = requests.Session() application = tornado.web.Application([ (r"/", Handler), ]) if __name__ == '__main__': signal.signal(signal.SIGTERM, signal_term_handler) try: set_hook = api.get(URL + "setWebhook?url=%s" % MyURL) if set_hook.status_code != 200: logging.error("Can't set hook: %s. Quit." % set_hook.text) exit(1) application.listen(8888) tornado.ioloop.IOLoop.current().start() except KeyboardInterrupt: signal_term_handler(signal.SIGTERM, None)
Здесь мы при запуске бота устанавливаем вебхук на наш адрес и отлавливаем сигнал выхода, чтобы вернуть поведение с ручной выгрузкой событий.
Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.
class Handler(tornado.web.RequestHandler): def post(self): try: logging.debug("Got request: %s" % self.request.body) update = tornado.escape.json_decode(self.request.body) message = update['message'] text = message.get('text') if text: logging.info("MESSAGE\t%s\t%s" % (message['chat']['id'], text)) if text[0] == '/': command, *arguments = text.split(" ", 1) response = CMD.get(command, not_found)(arguments, message) logging.info("REPLY\t%s\t%s" % (message['chat']['id'], response)) send_reply(response) except Exception as e: logging.warning(str(e))
Здесь CMD — словарь доступных команд, а send_reply — функция отправки ответа, которая на вход принимает уже сформированный объект Message.
Собственно, её код довольно прост:
def send_reply(response): if 'text' in response: api.post(URL + "sendMessage", data=response)
Теперь, когда вся логика бота описана можно начать придумывать ему команды.
3. Команды
Перво-наперво, необходимо соблюсти соглашение Telegram и научить бота двум командам: /start и /help:
def help_message(arguments, message):
response = {'chat_id': message['chat']['id']}
result = ["Hey, %s!" % message["from"].get("first_name"),
"\rI can accept only these commands:"]
for command in CMD:
result.append(command)
response['text'] = "\n\t".join(result)
return response
Структура message[‘from’] — это объект типа User, она предоставляет боту информацию как id пользователя, так и его имя. Для ответов же полезнее использовать message[‘chat’][‘id’] — в случае личного общения там будет User, а в случае чата — id чата. В противном случае можно получить ситуацию, когда пользователь пишет в чат, а бот отвечает в личку.
Команда /start без параметров предназначена для вывода информации о боте, а с параметрами — для идентификации. Полезно её использовать для действий, требующих авторизации.
После этого можно добавить какую-нибудь свою команду, например, /base64:
def base64_decode(arguments, message): response = {'chat_id': message['chat']['id']} try: response['text'] = b64decode(" ".join(arguments).encode("utf8")) except: response['text'] = "Can't decode it" finally: return response
Для пользователей мобильного Telegram, будет полезно сказать @BotFather, какие команды принимает наш бот: I: /setcommands
BotFather : Choose a bot to change the list of commands.
I: @******_bot
BotFather: OK. Send me a list of commands for your bot. Please use this format:
command1 — Description
command2 — Another description
I:
whoisyourdaddy — Information about author
base64 — Base64 decode
BotFather: Success! Command list updated. /help
C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.
4. Свобода
Как можно было заметить, Telegram присылает сообщение целиком, а не разбитое, и ограничение на то, что команды начинаются со слеша — только для удобства мобильных пользователей. Благодаря этому можно научить бота немного говорить по-человечески.
UPD: Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/<command>) (https://core.telegram.org/bots#privacy-mode)
- All messages that start with a slash ‘/’ (see Commands above)
- Messages that mention the bot by username
- Replies to the bot’s own messages
- Service messages (people added or removed from the group, etc.)
Чтобы бот получал все сообщения в группах пишем @BotFather команду /setprivacy и выключаем приватность.
Для начала в Handler добавляем обработчик:
if text[0] == '/':
...
else:
response = CMD["<speech>"](message)
logging.info("REPLY\t%s\t%s" % (message['chat']['id'], response))
send_reply(response)
А потом в список команд добавляем псевдо-речь:
RESPONSES = { "Hello": ["Hi there!", "Hi!", "Welcome!", "Hello, {name}!"], "Hi there": ["Hello!", "Hello, {name}!", "Hi!", "Welcome!"], "Hi!": ["Hi there!", "Hello, {name}!", "Welcome!", "Hello!"], "Welcome": ["Hi there!", "Hi!", "Hello!", "Hello, {name}!",], } def human_response(message): leven = fuzzywuzzy.process.extract(message.get("text", ""), RESPONSES.keys(), limit=1)[0] response = {'chat_id': message['chat']['id']} if leven[1] < 75: response['text'] = "I can not understand you" else: response['text'] = random.choice(RESPONSES.get(leven[0])).format_map( {'name': message["from"].get("first_name", "")} ) return response
Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map — удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.
5. Не текст.
Для примера расширим словарь RESPONSES:
RESPONSES["What time is it?"] = ["<at_sticker>", "{date} UTC"]
И будем отлавливать текст :
if response['text'] == "<at_sticker>":
response['sticker'] = "BQADAgADeAcAAlOx9wOjY2jpAAHq9DUC"
del response['text']
Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:
def send_reply(response): if 'sticker' in response: api.post(URL + "sendSticker", data=response) elif 'text' in response: api.post(URL + "sendMessage", data=response)
И все, теперь бот будет время от времени присылать стикер вместо времени:
6. Возможности
Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие).
Вспоминая статью про умный дом, могу сказать, что теперь извращений меньше, а работа прозрачнее.
7. Ограничения
К сожалению, на данный момент существует ограничение на использование webHook — он работает только по https и только с валидным сертификатом, что, например для меня пока критично за счет отсутствия поддержки сертифицирующими центрами динамических днс.
while True:
r = requests.get(URL + "?offset=%s" % (last + 1))
if r.status_code == 200:
for message in r.json()["result"]:
last = int(message["update_id"])
requests.post("http://localhost:8888/",
data=json.dumps(message),
headers={'Content-type': 'application/json',
'Accept': 'text/plain'}
)
else:
logging.warning("FAIL " + r.text)
time.sleep(3)
P.S. По пункту 7 нашел удобное решение — размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом.
UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч ‘method’: ‘sendMessage’ (или любой другой метод, используемый ботом).
habr.com
Как создать бота в Телеграмм
Всем доброго дня. На связи снова Василий Блинов. Сегодня вы узнаете, как создать бота в Телеграмм. Я много писал про их полезные функции, теперь настал момент обзавестись собственным помощником.
Думал, что для этого потребуются специальные знания программирования (тут я не очень силён), оказывается, нет. Я нашёл бесплатный способ быстрого создания бота. Спешу поделиться им с вами, мои уважаемые читатели.
Полное руководство по Telegram
Сейчас Телеграм очень востребован и его популярность растёт день ото дня. Не оставим мы без внимания и ботов для него.
Чем полезны?
Как раз боты и стали одним из главных трендов Телеграма. Напомню, что они представляют из себя роботизированные диалоги внутри мессенджера, способные быстро решать множество задач:
- показывать новости по заданной теме,
- находить и скачивать любую информацию,
- отвечать на часто задаваемые вопросы,
- присылать обновления с сайта,
- заменять или дополнять email-рассылку,
- могут проводить опросы,
- играть с посетителями и др.
Тем самым пользователь подписывается на актуальные для него темы и быстро находит нужную ему информацию, получая от бота ответ на интересующий вопрос.
Моя подборка полезных ботов позволит познакомиться с ними поближе.
Способы создания
Написать код ручками
Для этого нужно знать языки программирования (Python, PHP или Java), а также есть ещё масса нюансов типа регистрации хостинга и прочего. Это может стать огромной проблемой для некоторых.
К счастью, есть простой путь сделать бота для обычных юзеров, не владеющих навыками программирования.
Воспользоваться специальным сервисом
Наш спаситель — Manybot.io.
Именно на нём я нашёл русский интерфейс, понятную инструкцию и нужный на первых этапах функционал. Роботы на этой платформе умеют:
- отправлять сообщения подписчикам,
- делать красивые меню,
- проводить автопостинг из RSS ваших ресурсов.
Регистрация
Первым делом откроем @Manybot в мессенджере. Нажмём кнопку «Начать».
Выберем русский язык из предложенного списка.
Кликаем «Добавить нового бота».
Следуем дальнейшим инструкциям. Нам нужно зарегистрироваться у @BotFather.
Перейдём по ссылке и запустим его.
Введём команду /newbot.
Придумываем обычное и техническое имя с хвостиком bot. Самое важное — не забываем скопировать полученный ключ-токен.
Вернёмся к Manybot, покажем ему этот код, нажав «Я скопировал токен».
Придумаем описание.
Принимайте поздравления, регистрация завершена. Теперь вы полноправный владелец собственного робота Телеграм.
Настройка
Займёмся созданием меню и первых команд. Для этого нужно найти своего робота, для этого в поисковую строку вводим его имя. У меня это @iklife_bot.
Создаём простейшую команду
Весь принцип bota — это ответы на вопросы человека, поэтому нужно прописать команды и ответы на них.
Для этого вызовем меню настройки — /commands.
Вводим имя команды и текст, который она будет выдавать в ответ на клик по ней.
Дожидаемся сообщения об успешном создании команды.
Делаем меню
Гораздо удобнее, когда посетители могут быстро выбрать все команды прямо из меню. Для его создания опять вернёмся к /commands и далее «Настроить гл. меню».
Потом «Добавить пункт меню». Называем его, выбираем ранее созданную команду.
Пункт меню готов!
Проверяем, посмотрите, что получилось. Всё работает. Аналогично создаются и другие команды с пунктами меню.
Автопостинг
Главным достоинством @Manybot является мгновенная настройка автопостинга записей с сайта с RSS-лентой или из соц. сетей, или Ютуба прямо в чат. Таким образом, читатели всегда будут в курсе обновлений, не выходя из Telegram.
Давайте его запустим!
Вводим /autoposting.
Я укажу RSS-поток своего блога — iklife.ru/feed. Дожидаемся проверки и сообщения об успешном завершении.
Теперь вы увидите мои статьи прямо внутри @iklife_bot.
Заключение
На этом всё, надеюсь, что эта статья поможет вам создать своего первого бота. Если вы ещё знаете простые способы их создания, поделитесь, пожалуйста, в комментариях.
Спасибо за внимание!
подпишись и начни получать лучшие статьи первым
ПодписатьсяПодписалось уже 6999 человек
iklife.ru
Как быстро создать бота в Telegram без знаний программирования – 1C-UMI
Среди неопытных пользователей существует мнение, что для создания бота в Telegram нужно быть опытным кодером и знать языки программирования. В некоторых случаях это действительно так. Но только тогда, когда бот должен иметь сложный функционал, которым его нельзя наделить при помощи конструктора. В остальных случаях можно обойтись специальными сервисами для создания Телеграм-ботов. Об этих инструментах мы сегодня и расскажем.
Регистрируем своего бота в BotFather
Перед созданием бота нужно зарегистрировать его в BotFather. Это делается для того, чтобы ваш бот мог работать в Telegram. BotFather ― это тоже бот, найти его просто, для этого кликните по данной ссылке, и мессенджер сам откроет с ним диалог. Нажмите внизу кнопку «Запустить».
В окне чата отобразятся все доступные команды. Нас интересует /newbot. Можете это ввести вручную или же кликнуть по соответствующей записи прямо в командном списке.
BotFather предложит вам выбрать имя для своего будущего бота. Вводим произвольное.
Затем необходимо придумать юзернейм боту. Он должен быть уникальным, так как в противном случае регистрация бота будет отклонена. В конце названия обязательно нужно указать приставку _bot.
После успешной регистрации BotFather пришлет вам сообщение с токеном, который нужно записать где-нибудь у себя и сохранить. В дальнейшем он нам понадобится.
Теперь переходим непосредственно к созданию самого бота.
Создаем бота с помощью ManyBot
ManyBot — это уникальная разработка в Telegram, которая позволяет пользователям без знаний языков программирования создавать собственные простые боты.
Запускаем ManyBot по ссылке выше и жмем на кнопку «Добавить нового бота».
Затем копируем ранее полученный нами токен в BotFather и вставляем в чат с ManyBot. Жмем на стрелочку отправки сообщения справа или Enter.
Теперь нужно написать маленький текст о том, что будет делать наш бот. В случае, если вы ничего писать не хотите, можно воспользоваться кнопкой «Пропустить».
Получаем сообщение от ManyBot о том, что бот создан и настроен.
Кликаем по ссылке с нашим ботом и жмем на кнопку «Запустить».
Сразу открывается окно, где отображается список команд, а внизу удобное меню для добавления функций в бот.
Кликаем по кнопке «Пользовательские команды» и затем «Создать команду».
Название команды указываем произвольное, но, чтобы потом было понятно, за что она отвечает. Перед командой обязательно указываем slash в виде /.
После написания команды жмем Enter или голубую стрелочку справа.
Теперь необходимо добавить то, что вы хотите, чтобы бот присылал пользователю в ответ на введенную команду. Например, какой-то текст или картинку, документ или аудиофайл.
Текст пишем в поле для этого или копируем откуда-нибудь, а для прикрепления файлов используем значок «Скрепка».
Изображение отправляется отдельно от текста.
Добавив всю нужную информацию для этой команды, воспользуйтесь кнопкой «Сохранить».
Таким образом можно создавать множество команд, и каждая из них будет отвечать за вывод конкретной информации в виде текста, фото, документов или файлов.
Для проверки работоспособности команды жмем в меню на кнопку «Назад», затем вводим вручную созданную нами команду и нажимаем Enter. В ответ приходит сообщение с тем содержанием, которое мы указали при добавлении команды.
Однако вводить каждый раз вручную команды как-то неудобно, поэтому можно воспользоваться функцией создания графического меню в ManyBot. Для этого переходим вновь в раздел «Пользовательские команды» и жмем на кнопку «Настроить гл. меню».
Потом кликаем по кнопке «Добавить пункт меню».
Выбираем в меню созданную нами команду.
Вводим название пункта меню. Например, «О компании». Можно использовать эмоджи.
Жмем Enter или по стрелке справа. Видим сообщение, что команда была успешно добавлена в меню. Возвращаемся назад при помощи соответствующей кнопки (2 клика).
В меню теперь есть добавленная нами кнопка, за которой закреплена созданная команда. Попробуем на нее нажать и посмотреть, что получится.
При нажатии на кнопку присылается та информация, которая ранее отправлялась только при ручном вводе команды. Согласитесь, что так намного удобнее!
С помощью ManyBot можно также создавать опросы, делать рассылку по подписчикам, настраивать автопостинг в канал Telegram, смотреть статистику и т.д. Узнать подробнее обо всех функциях конструктора можно в самом боте, прокрутив меню до пунктов «Помощь» и «Инструкции». Кликайте по ним и изучайте все возможности инструмента.
Создаем бота с помощью BotMother
Это полноценный веб-конструктор, который позволяет создавать собственных Телеграм-ботов через понятный интерфейс в системе. Сначала здесь нужно зарегистрироваться. Затем мы оказываемся в личном кабинете, где нужно кликнуть по значку «Добавить».
Потом кликаем в открывшемся окне по значку «Пустой бот».
Чтобы подключить зарегистрированный нами ранее в BotFather бот, его необходимо сначала удалить из ManyBot. Делается это через команду /deletebot (ввод команды, выбор нужного бота, подтверждение удаления). Либо можно зарегистрировать второго бота и использовать токен от него, оставив первого нетронутым.
Мы пошли по первому пути и удалили нашего бота из ManyBot. Теперь его токен можно использовать для BotMother. Для подключения бота к системе переходим в настройки.
Здесь передвигаем ползунок Telegram вправо, чтобы он стал зеленым, в поле «Токен» вводим полученный ранее в BotFather токен и кликаем внизу по значку «Дискета» для сохранения настроек.
Теперь возвращаемся к нашему боту в конструкторе.
Сначала можно добавить текст приветствия для всех пользователей, которые будут запускать ваш бот. Справа находится блок с функциональными блоками. Кликните мышкой по самому верхнему с названием «Текст» и перетащите на стартовый экран.
Теперь в текстовом поле пишем наше приветствие. Можно использовать смайлы.
Чтобы обращаться персонально по имени к каждому пользователю, в текст сообщения нужно добавить конструкцию {{this_user.firstname}}.
Для создания меню перетащим блок «Группа кнопок с подсказками» на тот же стартовый экран, но с расположением под введенным ранее приветствием.
В поле «Текст сообщения» вводим подсказку для пользователя. Например, «Выберите нужный вам пункт меню». А в поле «Введите текст кнопки» указываем короткий текст, который станет названием кнопки.
Чтобы добавить еще одну кнопку, кликните по значку с плюсиком.
Теперь нам нужно добавить еще два стартовых экрана, на которых мы разместим информацию, соответствующую созданным ранее кнопкам. Находим внизу страницы сайта кнопку с плюсиком в голубом круге и жмем на нее.
Появляется новый стартовый экран, вводим название, как у кнопки.
Теперь перетаскиваем на этот экран те компоненты, которые на нем должны быть. Например, тот же текст, как ранее, но еще с добавлением фото или других файлов.
Не забываем периодически кликать на кнопку сохранения, которая располагается внизу страницы в виде значка дискеты в зеленом круге.
Создаем второй стартовый экран прежним способом. Называем его, как вторую кнопку.
Опять перетаскиваем сюда нужные компоненты. Текст, фото, локацию, документ или любой другой элемент, что позволяет использовать бесплатный тариф конструктора.
Мы использовали скриншот наших тарифов на сайте 1C UMI.
Теперь нам нужно связать второй и третий стартовые экраны с кнопками действий в первом. Для этого перетаскиваем компонент «Развилка» на 1-й экран в самый низ.
В пункте «Выберите экран» выбираем «Стартовый экран», затем кликаем по кнопке +. В верхнем поле нужно выбрать второй стартовый экран. Поле «text» оставляем нетронутым, а в поле «Введите значение» указываем точное название кнопки.
Опять кликаем по кнопке с плюсиком, чтобы добавить следующий пункт. Проделываем все то же самое, что и для первого пункта, но выбираем 2-й экран и указываем название для второй кнопки.
Жмем на кнопку «Сохранить». Запускаем бота в Telegram и проверяем, что получилось.
Кликаем по кнопке «О компании» и получаем в ответ сообщение.
Но как вернуться назад после этого? А для этого нужно создать соответствующую кнопку. Делается это просто. На второй стартовый экран переносится сначала компонент «Группа кнопок с подсказками», а чуть ниже «Развилка».
В первом блоке пишем подсказку для пользователя, что ему нужно сделать, чтобы вернуться назад, и название самой кнопки.
Во втором блоке «Развилка» делаем все то же самое, что в предыдущих аналогичных компонентах, но среди экранов выбираем «Стартовый экран», а в названии кнопки указываем «Назад».
Сохраняем изменения при помощи значка дискеты в правой нижней части страницы.
Очищаем историю переписки с ботом в Telegram, запускаем его снова. Кликаем по первому пункту меню и после того, как он присылает информацию, видим, что появилась кнопка «Назад», по нажатию на которую происходит перенаправление в главное меню.
Такую кнопку возвращения можно сделать для всех пунктов меню.
Простой бот, созданный в BotMother, будет выглядеть в вашем личном кабинете примерно так, как на изображении ниже.
Преимущества и недостатки ManyBot и BotMother
ManyBot иногда «тормозит» и не отвечает на введенные в бот команды. Также при запуске бота, созданного на этом конструкторе, отправляется текстовая реклама от разработчиков.
Что касается плюсов, то тут можно выделить наличие функции рассылки, более или менее понятный интерфейс, абсолютную бесплатность и возможность отслеживать статистику.
BotMother почти не имеет недостатков, кроме невозможности использовать платные компоненты в рамках бесплатного аккаунта и создания только одного free-бота.
В остальном сервис просто отличный. Много различных функций, понятные цепочки действий, никакой левой рекламы и детальное руководство в форматах текста и видео.
umi.ru
Документация Telegram: Боты
Боты — специальные аккаунты в Telegram, созданные для того, чтобы автоматически обрабатывать и отправлять сообщения. Пользователи могут взаимодействовать с ботами при помощи сообщений, отправляемых через обычные или групповые чаты. Логика бота контролируется при помощи HTTPS запросов к нашему API для ботов.
Общие сведения
Что могут делать боты?
Вот несколько примеров использования ботов:
- Интеграция с другими сервисами. Например, бот может отправлять комментарии или управлять «умным домом». Или, например, отправлять вам уведомления при совершении каком-то действия или события (Примеры: GitHub Bot, Image Bot).
- Утилиты и инструменты. Бот может отображать погоду, переводить тексты или предупреждать о предстоящих событиях по вашему запросу (Например: бот опросов).
- Одно- и многопользовательские игры. Бот может поиграть с вами в шашки или шахматы, проводить викторины и так далее. (Пример: Trivia bot).
- Социальные сервисы. Бот может находить вам собеседника, основываясь на ваших общих интересах и увлечениях. (Пример: HotOrBot).
- Все, что вам захочется. Бота можно запрограммировать для чего угодно. Разве что посуду они помыть не смогут.
Как работают боты?
Как уже было сказано ранее, роботы — особые аккаунты, которые не требуют номера телефона при создании. По сути, эти аккаунты играют роль интерфейса к вашему сервису, который работает на удалённом сервере.
Самое интересное в роботах это то, что для их создания вам не нужно изучать низкоуровневые методы работы с MTProto и шифрованием — общение с роботом организовано при помощи обычного HTTPS интерфейса с упрощёнными методами Telegram API. Мы назвали его Bot API.
ПримечаниеРекомендуем также ознакомиться с подробным описанием Bot API.
Как создать бота?
Для этого есть… Бот. Просто напишите пользователю @BotFather и следуйте его инструкциям. Как только вы создали бота и получили свой ключ (токен) авторизации, переходите в раздел документации Bot API, чтобы начать настраивать вашего бота.
Чем бот отличается от обычного аккаунта?
- У роботов нет статусов «онлайн» и «был в сети», вместо этого отображается надпись «бот».
- Для ботов выделено ограниченное место на серверах — все сообщения будут удалены по прошествии определённого срока после обработки.
- Боты не могут сами начать общение с пользователем. Пользователь должен либо добавить робота в группу, либо первым начать с ним диалог. Для этого можно использовать ссылки вида
t.me/<bot_username>
или поиск по имени пользователя. - Имя пользователя у робота должно заканчиваться на «bot» (например, @controllerbot).
- При добавлении в конференцию, по умолчанию робот не получает всех сообщений (см. режим приватности).
- Роботы никогда не спят, не едят и не жалуются (если только вы не запрограммируете их на обратное).
Суперспособности
У роботов Telegram есть много уникальных возможностей — например, кастомизированные клавиатуры, дополнительные интерфейсы для команд по умолчанию, внешнее связывание и специальные режимы приватности для групп.
Инлайн-режим
Пользователи могут общаться с вашим ботом напрямую из поля ввода сообщения — из любого чата или группы. Для этого нужно всего лишь набрать имя пользователя вашего бота и запрос для поиска. Получив запрос, бот может возвратить какие-либо результаты. Как только пользователь нажмёт на один из них, он сразу же отправится в чат. Таким образом можно запрашивать контент от бота в чатах, группах или каналах.
Подробнее о встроенном режиме в блоге »
Игры
С помощью ботов пользователи могут играть в HTML5-игры в группах или приватных чатах. Игровая платформа Telegram поможет составить таблицу рекордов и оповещать пользователей об изменении рейтинга.
Под капотом у игр — HTML5, поэтому вы можете создавать игры любой сложности. На данный момент командой Telegram созданы несколько демо-игр:
Подробнее об играх в Telegram »
Клавиатуры
Одна из самых необычных возможностей Bot API — кастомизированные клавиатуры. При передаче сервером ответа есть возможность передать команду на отображение специальной клавиатуры с предустановленными вариантами ответа (см. ReplyKeyboardMarkup). Клиент Telegram, получив сообщение, отобразит пользователю вашу клавиатуру. Нажатие на клавишу сразу же отправит на сервер соответствующую команду. Таким образом можно значительно упростить взаимодействие робота с пользователем. На данный момент для отображения на клавише могут использоваться эмодзи и текст. Вот несколько примеров таких клавиатур:
За более подробной информацией обращайтесь к описанию метода sendMessage.
Команды
Команды представляют собой более гибкий способ общения с ботом. Рекомендуется следующий синтаксис:
/команда [необязательный] [аргумент]
Команда должна начинаться с символа косой черты «/» и не может быть длиннее 32 символов. Команды могут состоять из букв латинского алфавита, цифр и подчёркивания. Несколько примеров:
/get_messages_stats
/set_timer 10min Alarm!
/get_timezone London, UK
Сообщения, начинающиеся с косой черты, будут всегда доставляться боту (точно также, как и при ответе на его сообщения и на @упоминания бота в чате). Приложения 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 — Удалить бота и его имя пользователя.
Пожалуйста, имейте в виду, что для применения настроек на сервере, возможно, потребуется некоторое время.
tlgrm.ru
Пишем telegram-бота на python с помощью библиотеки telebot часть 1 / Habr
Лирическое отступление
Боты сегодня — это многофункциональный инструмент, как для бизнеса, так и для развлечений. Лично я считаю, что за ними будущее. Конечно, прочитав эту статью, вы не сможете создавать большие проекты, но заинтересоваться и начать — вполне.
Установка и настройка
Для начала давайте скачаем сам python. Сделать это можно на официальном сайте. Не забудьте поставить галочку add to PATH во время установки! После установки python’a нам понадобится хороший редактор кода. На помощь приходит компания JetBrains со своим бесплатным PyCharm. Мы уже близко, осталось скачать библиотеку telebot. Для этого заходим в командную строку и пишем:
pip install pytelegrambotapi
Если всё прошло успешно, мы можем продолжать!
VPN
Думаю все знают о блокировки telegram в России и единственным решением как всегда остаётся vpn. Лично я рекомендую Windscribe, т.к. вам дают 2 гб. трафика совершенно бесплатно!
Bot Father
В поиске telegram находим Bot Farher’a и создаем своего бота с помощью команды /newbot. Затем вводим имя и юзернейм. Обратите внимание, что юзернейм должен оканчиваться на bot!
Как вы видите нам выдали специальный api токен, с помощью которого вы сможете управлять своим ботом (в моём случае это: 776550937:AAELEr0c3H6dM-9QnlDD-0Q0Fcd65pPyAiM). Свой токен Вы можете запомнить, но я рекомендую его записать.
Код
Настал момент, которого ждали все. Открываем PyCharm и создаем новый проект.
Тут рекомендую поставить всё как у меня (название, конечно можно изменить). После создания проекта, давайте создадим файл, в котором будет наш код. Кликните правой кнопкой по папке с вашем проектом, затем New → Python File. Отлично, начнем писать код. Импортируем библиотеку telebot, с помощью:
import telebot
Теперь нужно создать переменную bot. На самом деле имя переменной может быть каким угодно, но я привык писать bot.
bot = telebot.TeleBot('ваш токен')
Напишем декоратор bot.message_handler(), с помощью которого наш бот будет реагировать на команду /start. Для этого в круглых скобках пишем commands=[‘start’]. В итоге у нас должно получиться это:
@bot.message_handler(commands=['start'])
Если Вы попробуете запустить своего бота (ПКМ->Run), то у вас ничего не выйдет. Во первых в конце кода мы должны прописать bot.polling(). Это нужно для того, чтобы бот не выключился сразу, а работал и проверял, нет ли на сервере нового сообщения. А во вторых наш бот если уж и будет проверять наличие сообщений, то всё равно ничего ответить не сможет. Пора это исправлять! После нашего декоратора создаем функцию start_message, которая будет принимать параметр message (название функции может быть любым). Далее давайте реализуем отправку сообщения от самого бота. В функции пропишем bot.send_message(message.chat.id, ‘Привет, ты написал мне /start’). Смотрите, что у Вас должно получиться:
import telebot
bot = telebot.TeleBot('776550937:AAELEr0c3H6dM-9QnlDD-0Q0Fcd65pPyAiM')
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, 'Привет, ты написал мне /start')
bot.polling()
Проверим…
Отлично, наш бот работает! Чтобы он отвечал не только на команды, но и на сообщения, создадим новый декоратор bot.message_handler(), а в круглые скобочки напишем content_types=[‘text’]. Вообще существует множество видов контента, к примеру location, photo, audio, sticker и т.д. Но нам же нужно отвечать на текст, верно? Поэтому создаём функцию send_text, принимающую параметр message. В функции пропишем условие:
@bot.message_handler(content_types=['text'])
def send_text(message):
if message.text == 'Привет':
bot.send_message(message.chat.id, 'Привет, мой создатель')
elif message.text == 'Пока':
bot.send_message(message.chat.id, 'Прощай, создатель')
Если текст сообщения будет равен «Привет», то бот отвечает «Привет, мой создатель», а если текст сообщения будет равен «Пока», то бот ответит «Прощай, создатель». Тут думаю всё понятно. Но вы скорее всего задались вопросом, а если пользователь пропишет «привет», ну или «пРиВет», как быть в этой ситуации? Всё достаточно просто! В условии, после message.text напишите функцию .lower(), а в тексте все заглавные буквы замените на строчные. Теперь наш бот отвечает не только на «привет», но и на «ПривеТ», и даже «пРиВеТ».
Вот что у вас должно получиться:
import telebot
bot = telebot.TeleBot('776550937:AAELEr0c3H6dM-9QnlDD-0Q0Fcd65pPyAiM')
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, 'Привет, ты написал мне /start')
@bot.message_handler(content_types=['text'])
def send_text(message):
if message.text.lower() == 'привет':
bot.send_message(message.chat.id, 'Привет, мой создатель')
elif message.text.lower() == 'пока':
bot.send_message(message.chat.id, 'Прощай, создатель')
bot.polling()
Отлично, с текстом мы разобрались, но как же отправить к примеру стикер? Всё просто! У каждого стикера есть свой id, соответственно зная id мы сможем его отправить. Получить id стикера можно двумя способами. Первый (простой) — через специального бота «What’s the sticker id?»
Ну и второй способ, для тех, кто не ищет лёгких путей. Создаем новый декоратор bot.message_handler(), вот только в скобочки пишем content_types=[‘sticker’]. Далее всё как обычно. Создаем функцию, принимающую параметр message, а вот в ней пропишем print(message). Запускаем бота.
Смотрите, как только я отправил стикер, он сразу же вывел информацию в консоль, и в самом конце будет наш id стикера (file_id). Давайте сделаем так, чтобы когда пользователь отправил боту «я тебя люблю», то бот ему ответил стикером. Создавать новый декоратор не нужно, мы просто допишем условие, которое было до этого. Вот только вместо bot.send_message() пропишем bot.send_sticker(), а вместо текста напишем id стикера.
Поздравляю, всё получилось! Думаю как отправить аудио, фото, и геолокацию, вы разберетесь сами. Я же хочу показать вам, как сделать клавиатуру, которую бот покажет вам при старте. Это уже будет сделать сложнее. Создаем переменную keyboard1, в которую запишем telebot.types.ReplyKeyboardMarkup(). Эта функция вызывает клавиатуру. Далее создадим ряды, но помните, что рядов может быть не больше 12! Для того, чтобы их создать, пишем keyboard1.row(). В круглые скобочки запишите всё что хотите, лично я напишу «Привет» и «Пока». Теперь, чтобы вызвать клавиатуру, допишем reply_markup=keyboard1 к функции отправки сообщения при старте. Вот, что у вас должно получиться:
keyboard1 = telebot.types.ReplyKeyboardMarkup()
keyboard1.row('Привет', 'Пока')
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, 'Привет, ты написал мне /start', reply_markup=keyboard1)
Запускаем бота…
Вы видите, что клавиатура какая-то большая. Чтобы это исправить, нужно просто в ReplyKeyboardMarkup() прописать True. Ну а если вы хотите, чтобы клавиатура скрывалась, как только пользователь нажал на нее, то напишите еще один True. Подробнее прочитать, что означают эти True вы можете в официальной документации.
keyboard1 = telebot.types.ReplyKeyboardMarkup(True, True)
Ну а на этом всё! Конечно, это не все возможно ботов в telegram, но основные возможности я вам показал. Спасибо за внимание.
Исходный код:
import telebot
bot = telebot.TeleBot('<ваш токен>')
keyboard1 = telebot.types.ReplyKeyboardMarkup()
keyboard1.row('Привет', 'Пока')
@bot.message_handler(commands=['start'])
def start_message(message):
bot.send_message(message.chat.id, 'Привет, ты написал мне /start', reply_markup=keyboard1)
@bot.message_handler(content_types=['text'])
def send_text(message):
if message.text.lower() == 'привет':
bot.send_message(message.chat.id, 'Привет, мой создатель')
elif message.text.lower() == 'пока':
bot.send_message(message.chat.id, 'Прощай, создатель')
elif message.text.lower() == 'я тебя люблю':
bot.send_sticker(message.chat.id, 'CAADAgADZgkAAnlc4gmfCor5YbYYRAI')
@bot.message_handler(content_types=['sticker'])
def sticker_id(message):
print(message)
bot.polling()
Если у вас возникли вопросы — можете мне написать в telegram dimagorovtsov
habr.com
Создание бота в Telegram — алгоритм, проверка работы
Ссылка на телеграм не работает? И вы ищите как сделать рабочую ссылку? Прочитайте нашу статью: Как сделать ссылку на Telegram!
Современные технологии оказывают влияние на сферы жизнедеятельности человека. Сегодня люди не просто ходят на работу и получают фиксированную заработную плату. Но ищут более прибыльные и менее ресурсозатратные способы заработка.
Сегодня активные пользователи используют не только страницы социальных сетей для дополнительно заработка, но и мессенджеры. Одним из молодых, но самым популярным и большими возможностями для бизнеса, является проест Павла Дурова – Telegram. За последний год, мессенджер преобразился, появились новые опции. Ведения бизнеса и получение прибыли на не паханном поле, приманивает большое количество пользователей.
Телеграм – отличная площадка не только для общения, обмена видео фото, но и для заработка. Не плохо заработать можно на ботах. Что это такое и какими функциями они наделены, читайте ниже. Ниже вы найдете ответ на вопрос как создать бота в телеграме.
Функции и возможности ботов телеграм
Для чего существуют боты? Если вкратце, то бот – это автоматизированный сервис. Он бывает узко тематическим, а также помогает пользователям зарабатывать. Он создан таким образом, что самостоятельно, без помощи пользователя может вести переписку.
Как он работает? Его программа написана таким образом, что происходит автоматический анализ входящей информации. Проанализировав текст входящего сообщения, ресурс самостоятельно начинает подбирать из существующих фраз в библиотеке более подходящую. Делая такие манипуляции за считанные секунды, бот может заменить человека в чате.
Боты существуют:
- для создания опросов, голосований;
- для дополнительного заработка, для ставок, развлечений;
- для размещения контента, автопостинг публикаций;
Внимание! Боты можно использовать готовы, а можно создать самостоятельно, используя специальные сервисы.
Какое применение могут быть у ботов? Рассмотрим несколько вариантов:
- обеспечивает сотрудничество с большим количеством клиентов;
- могут служит консультантами по общим вопросам;
- помогают сократить расход личного времени на ведение аккаунтов нескольких социальных сетей;
- блокировка аккаунта с которого ведутся подозрительные действия в вашем профиле.
Телеграм на сегодняшний день отличная площадка не только общения, обмена медиа файлами, но и ведение бизнеса. Продвигать канал и вести его помогают боты.
Создание
Создание любой программы, которая предназначена для пользования разными социальными сетями требует определенных знаний и навыков. Основная зада при создании бота в telegram довести его до совершенства без ошибок.
Как и любое приложение, создание бота требует соблюдение определенного алгоритма действий. Пока не завершите первый эта, не сможете приступить ко второму. Совсем недавно телеграм, разработали собственную площадку для их создания. Примечательно что таким образом он пишется конкретно под функционал и возможности мессенджера.
Уверенные пользователи утверждают, что создать подобный сервис можно всего лишь за несколько минут в день, а именно примерно за десять минут.
Для создания своего собственного сервиса необходимо понимать и знать язык программирования. Сегодня большое количество сайтов, статей, посвящены данной теме. Общение с ботами заменяет живого человека, конечно всё зависит от его тематики. Он может отвечать разные вопросы, путем подбора информации из своей базы.
Алгоритм создания
В первую очередь необходимо определиться, для чего мы хотим его создать. Чтобы его создать, следует написать и соблюдать алгоритм действия. Существует несколько шагов по созданию. На самом первом этапе необходимо зарегистрировать будущее «чадо» bot, чтобы получить ID. Сделать это можно с помощью официального бота для telegram Bot Father. Сначала добавляете его в свои контакты, а затем пишете – страт (start). В ответ придет сообщение с перечнем команд. Выбираете нужную команду. Пишите имя, в конце фразы добавляете слово bot. На данном этапе можно совершить всю настройку оформления, выбрать и установить аватар, краткое описание и приветственное сообщение для пользователей, которые им будут пользоваться.
Важно! Рекомендуем заранее продумать название своего продукта. Чтобы процесс прошел быстрее. Никаких ограничений нет.
Далее переходим непосредственно к самому программированию. На фото представлен скелет продукта:
Далее нам необходимо установить адрес и сигнал входа. Делается того чтобы можно было управлять вручную:
Код очень легок:
После регистрации и программирования, принимаем соглашение с разработчиками Telegram. И программируем две базовые команды старт и помощь (star/help).
Далее можем писать свою команду.
Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы к Telegram Bot API. Причем API довольное простое — бот обращается на определенный URL с параметрами, а Telegram отвечает JSON объектом.
Проверка функциональности
После написание у создателей возникает вопрос, как проверить свой сервис. Это можно сделать с помощью специальных программ, которые укажут на характер существующих ошибок, также работу можете проверить, если добавите его в список в своих контактах.
После чего начинается отправлять разные команды, и таким образом, проверяете как она работает.
Создание команд
Разработка ботов процесс увлекательный, но трудоемкий. Как вписать команды, зависит от того с какой платформой работаете. Например, если рассматривать платформу ManyBot. То после завершения регистрации на втором этапе в меню появятся кнопки с разным функционалом. Кликаете по кнопке «создать команду». Название может быть любым, главное ее содержание, суть. Любая команда начинается со слэш – «/».
Автопостинг и отложенный пост
Программа может быть настроена таким образом, что самостоятельно будет выкладывать посты с определенным промежутком времени. Автопостинг и постинг, очень удобны, если ведете активный аккаунт, а двух площадка. Именно для этих целей используют дополнительные сервисы.
Добавление кнопок
Также на примере Many Bot, рассмотрим, как отредактировать главное меню. Будучи администратором своего сервиса, вы можете добавлять или изменять различные кнопки. Если вы сомневаетесь в правильности действий, то лучше всего начать с изучения подробной инструкции.
Для привлечения пользователей можете в группы отправлять гиперссылку своего бота telegram.
telegram-rus.ru
инструкции и примеры по созданию ботов в Телеграмм
Из-за такой востребованности Телеграмма среди интернет-читателей его запросто можно использовать для продвижения собственного бренда. Так что сегодня мы разберемся, как создать бота в телеграмме, для чего его можно использовать и поделимся лучшими примерами.
Что такое Telegram-бот?
Бот, или по-другому чат-бот, является специальным алгоритмом, системой определенных компьютерных действий, которые формируют автоматическую переписку с настоящим собеседником. Работа осуществляется не при помощи искусственного интеллекта, а благодаря анализу поступившего сообщения и генерированию подходящего ответа из готовой базы.
Качественно и детально проработанные боты для Telegram могут не только реагировать на поступающие сообщения от потенциальных клиентов, но также отвечать на вопросы и даже консультировать.
Функции и возможности ботов Телеграм
Прежде чем мы попробуем рассказать, как сделать бота в Телеграме, давайте выясним, для чего он вообще может понадобиться и какую помощь можно получить от телеграм-робота?
Основные причины создания бота:
- работа в одно время сразу со многими клиентами;
- проведение консультации по основным вопросам для потенциального клиента;
- сокращение загруженности консультантов горячей линии;
- сокращение затрат на дополнительных консультантов;
- отбор и направление клиентов со сложными вопросами напрямую операторам и консультантам.
Как создать бота в Телеграм? Пошаговая инструкция
Есть многочисленные сервисы для создания ботов, платные и бесплатные, встроенные в сам Телеграм и сторонние. Базовый способ разработки через Телеграм мы рассмотрим в этой статье, а если вам хочется большего — используйте Manychat. Это сторонний сервис, который упрощает процесс создания, предлагает готовые наработки и дополненный функционал.
Удобнее делать чат-бот на компьютере, потому что придется воспользоваться многочисленными дополнительными файлами. Но если сильно захотеть и хорошо постараться, можно сделать это и с телефона. Итак, техникой запаслись, теперь приступаем к операции под названием «Как создать бота в Telegram».
- Для начала необходимо загрузить и установить сам Телеграм на компьютер или телефон.
- Как только мессенджер установлен, заходим в приложение и вводим слово «Manybot» в поисковой строке (как всегда, оно обозначена картинкой лупы).
- Когда увидите результаты поиска, кликните на кнопку «Start» снизу в правом углу.
- Далее нажимаем на «Добавить нового бота».
- В ответ на эти действия всплывет окошко с сообщением от службы Телеграмм, в котором они подробно объяснят, как добавить бота в канал Telegram. Далее действуем по предложенной инструкции.
- По условиям мессенджера, затем нужно перейти в профиль BotFather. Если что, в инструкции есть ссылка, выделенная синим цветом.
- Теперь кликаем на «Send Message», чтобы перейти к диалогу с этим «собеседником».
- Вводим команду «start», чтобы увидеть перечень команд, которые будут доступны при добавлении бота.
- Выбираем команду «newbot» и ждет ответного сообщения.
- Теперь самое время придумать уникальное название для своего бота (имейте в виду, что оно должно быть на английском языке и с окончанием «bot»). Введите и отправьте его, когда придет ответ. Обязательно сохраните API-токен, который будет ключом для доступа к вашему боту.
- Опять переходим к Manybot. Сюда вставляем сохраненный API-токен и ждем ответной реакции.
- Затем нужно отослать цели создания бота (для чего он понадобился и как будет функционировать). Если не хотите морочить с этим голову, пропустите этот шаг с помощью кнопки «Skip». В ответ вы должны получить отчет о завершении создания бота.
- Как только уведомление пришло, нашу операцию «Как добавить бота в Telegram» можно считать завершенной. Последнее сообщение должно включать ссылку, по которой вы сможете пригласить людей из своих контактов. Там же можно найти перечень универсальных команд для постинга в соц. сетях.
Как проверить функциональность бота?
Чтобы убедиться, что созданный нами робот действительно «на ходу», нужно его самостоятельно проверить. Для этого просто воспользуйтесь строкой поиска в мессенджере. Только вводите не технический ник, то, которое будут использовать ваши подписчики.
Если на этапе программирования и создания все было сделано верно, то ваш бот отобразится в строке поиска и отреагирует на сообщение.
Как самому сделать бота в Телеграме: добавляем команды
Если работает наше творение исправно, то можно задать определенные команды, чтобы при поступлении запроса от клиента бот подбирал подходящий по смыслу ответ. Вот пошаговая инструкция:
- Введите слово «Commands» и далее название самой команды.
- Теперь наберите ответную реакцию бота на эту команду. Она может включать одно или несколько сообщений с картинками видео- и аудиоматериалами. Сохраняем и ждем отчета о создании команды.
Таким же образом можно добавлять множество других команд. Их количество в мессенджере неограниченно.
Чтобы отредактировать уже созданную команду, нужно сделать следующее:
- Печатаем «Commands» и название самой команды.
- Кликаем на «Показать команду», после чего ждем ответ от Телеграм.
- В ответе высветится кнопка, которая предложит скорректировать ответ бота. К чему мы и приступаем.
Бот и автоматический постинг
Теперь мы в теме, как создать чат-бота в Телеграме, самое время освоить еще одну полезную функцию мессенджера. Она позволяет автоматически публиковать разные записи из других социальных сетей в вашем канале. Так они будут отображаться в новостях у подписчиков. Такой автопостинг работает с Твиттером, Ютубом и ВКонтакте. Чтобы настроить эту функцию, нужно сделать несколько простых шагов:
- Вводим в боте «Autoposting».
- Внизу должны появиться кнопки с социальными сетями. Нужно выбрать ту, записи которой мы хотим «копировать» и в чат-бот.
- Теперь необходимо ввести ссылку на вашу страницу, откуда боту нужно будет транслировать публикации. Совсем необязательно проходить авторизацию, можно даже оставить ссылку на чужую страницу.
Как запланировать пост в чат-боте?
Не секрет, что охват аудитории находится в прямой зависимости от времени публикации. Чаще всего опытный человек, который занимается контентом и его планированием, умеет определить оптимальный момент для постинга. Это время, когда запись увидит максимум подписчиков и потенциальных клиентов.
Но бывают ситуации, когда нет возможности подготовить и опубликовать пост. Тогда можно сделать это заранее. Для этого и существует отложенный постинг. Суть его заключается в следующем: создать публикацию можно, когда угодно, а отправить – когда необходимо. Здесь вы неограниченны. Можно поставить на постинг через 10 минут, а можно и через несколько дней.
Чтобы подготовить отложенную запись, нужно сделать следующее:
- В своем боте и введите «Newpost».
- Теперь пишем сам пост со всеми необходимыми вложениями.
- В нижней части экрана будут 4 кнопки. Предпоследней вы найдете как раз ту, что отвечает за отложенную публикацию. Кликайте на нее.
- Далее необходимо указать время, соответствующее вашему часовому поясу на данный момент.
- Затем вводим то время, когда нам нужно, чтобы в боте появилась подготовленная запись.
- Сохраняем пост.
Кстати, выполнять эти действия по «настройке» часов с вашим поясом нужно лишь единожды, во время первого планирования записи. Дальше это будет автоматически, бот запомнит ваше время. Нужно будет вводить только время для публикации.
Бот-телеграм: инструкция по созданию дополнительных кнопок
Чтобы свести свои действия к минимуму, можно создать особые кнопки команд. В результате, чтобы не набирать вручную каждое задание, можно просто выбрать в меню ту кнопку, которая отвечает за нужное нам «задание». Команда автоматически отправится. Итак, что же нужно сделать для этого:
- Вводим уже знакомое нам слово «Commands».
- В нижней части должна высветиться кнопка для настройки главного меню (обычно первый ряд с правой стороны). Кликайте!
- Нужно кликнуть на «Добавить пункт в меню».
- Из перечня выбираем нужную команду.
- Придумайте и напечатайте «имя» для созданной кнопки.
Все, теперь вам не нужно будет вводить полностью название команды. Достаточно просто кликнуть на кнопку.
Полезные примеры Телеграм-ботов
Делимся с вами списком чат-ботов в Телеграмме, которые будут вас вдохновлять на создание собственного и приносить пользу в повседневной жизни.
- @music – для истинных ценителей классической музыки: можно послушать и скачать любимые композиции прямо в Телеграмме.
- @misis_sch_bot – вот так удобно в форме чат-бота выполнено расписание МИСиС.
- @FastAid_bot – ну и для тех, кто внезапно оказался в экстремальной ситуации и не хочет гуглить, есть бот по оказанию первой помощи.
- @EcoideaBot — поможет вам правильно сортировать мусор.
Сам процесс создания чат-бота в Телеграмм может сначала показаться долгим и нудным. На самом деле это очень интересно, а результат – во много раз упрощенная работа – будет наградой за ваши старания.
waytostart.ru