Время на прочтение
6 мин
Количество просмотров 1.5M
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("MESSAGEt%st%s" % (message['chat']['id'], text))
if text[0] == '/':
command, *arguments = text.split(" ", 1)
response = CMD.get(command, not_found)(arguments, message)
logging.info("REPLYt%st%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'] = "nt".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("REPLYt%st%s" % (message['chat']['id'], response))
send_reply(response)
А потом в список команд добавляем псевдо-речь:
RESPONSES = {
"Hello": ["Hi there!", "Hi!", "Welcome!", "Hello, {name}!"],
"Hi there": ["Hello!", "Hello, {name}!", "Hi!", "Welcome!"],
"Hi!": ["Hi there!", "Hello, {name}!", "Welcome!", "Hello!"],
"Welcome": ["Hi there!", "Hi!", "Hello!", "Hello, {name}!",],
}
def human_response(message):
leven = fuzzywuzzy.process.extract(message.get("text", ""), RESPONSES.keys(), limit=1)[0]
response = {'chat_id': message['chat']['id']}
if leven[1] < 75:
response['text'] = "I can not understand you"
else:
response['text'] = random.choice(RESPONSES.get(leven[0])).format_map(
{'name': message["from"].get("first_name", "")}
)
return response
Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map — удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.
5. Не текст.
Боты, как и любой нормальный пользователь Telegram, могут не только писать сообщения, но и делиться картинками, музыкой, стикерами.
Для примера расширим словарь RESPONSES:
RESPONSES["What time is it?"] = ["<at_sticker>", "{date} UTC"]
И будем отлавливать текст <at_sticker>:
if response['text'] == "<at_sticker>":
response['sticker'] = "BQADAgADeAcAAlOx9wOjY2jpAAHq9DUC"
del response['text']
Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:
def send_reply(response):
if 'sticker' in response:
api.post(URL + "sendSticker", data=response)
elif 'text' in response:
api.post(URL + "sendMessage", data=response)
И все, теперь бот будет время от времени присылать стикер вместо времени:
6. Возможности
Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие).
Вспоминая статью про умный дом, могу сказать, что теперь извращений меньше, а работа прозрачнее.
7. Ограничения
К сожалению, на данный момент существует ограничение на использование webHook — он работает только по https и только с валидным сертификатом, что, например для меня пока критично за счет отсутствия поддержки сертифицирующими центрами динамических днс.
К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:
while True:
r = requests.get(URL + "?offset=%s" % (last + 1))
if r.status_code == 200:
for message in r.json()["result"]:
last = int(message["update_id"])
requests.post("http://localhost:8888/",
data=json.dumps(message),
headers={'Content-type': 'application/json',
'Accept': 'text/plain'}
)
else:
logging.warning("FAIL " + r.text)
time.sleep(3)
P.S. По пункту 7 нашел удобное решение — размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом.
UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч ‘method’: ‘sendMessage’ (или любой другой метод, используемый ботом).
Если вы устали вручную рассылать подписчикам новые коллекции, не можете больше отвечать на стандартные вопросы и вообще хотели бы перепоручить это кому-то другому – создайте своего бота в Телеграме.
В статье подробно расскажем, как это сделать за пару часов. Погнали.
Содержание
- Зачем нужен бот в Телеграме
- Как сделать бота в Телеграме
- Как настроить нового бота с помощью Manybot
- Как выглядит готовый к использованию бот
Зачем нужен бот в Телеграме
Потратьте немного времени и сделайте бесплатного бота в Телеграме, чтобы освободить себя от рутинной работы. Этот маленький помощник будет выполнять простую работу по общению с пользователями: разговаривать с ними, отправлять новые коллекции и отвечать на стандартные вопросы 24/7. Он не устает и не оставляет без внимания сообщения подписчиков, всегда отвечает им и создает уютную атмосферу, пока владелец занят более важными задачами.
И это только маленькая часть того, что он может. Его в любой момент можно донастроить и добавить новые функции, изменить любую часть бота и перенастроить ответы. Робота можно постоянно поддерживать в актуальном состоянии.
Бот в Телеграме помогает подписчикам:
- искать информацию;
- читать и скачивать текстовые файлы;
- искать и смотреть видео;
- искать и слушать аудио;
- комментировать статьи внутри мессенджера;
- учиться – например, учить новые слова на иностранном языке.
Кроме того, бот умеет:
- развлекать;
- проводить конкурсы и опросы подписчиков;
- показывать новости вашей группы, бизнеса, мира, чего угодно;
- отвечать на вопросы;
- рассылать сообщения подписчикам;
- напоминать о встречах, помогать договариваться и организовывать их;
- участвовать в групповых чатах;
- выдавать информацию о товарах.
Это только популярная часть функций, которые подключают к ботам разные магазины и чаты в Телеграме. Что именно добавите вы – зависит от направления и требований вашего бизнеса.
В Телеграме и других соцсетях можно публиковать посты через сервис отложенного постинга SMMplanner. Вы можете планировать публикации одновременно в ВК, Одноклассники, другие соцсети и Телеграм. Это очень удобно – оцените сами. Тестировать весь функционал можно бесплатно в течение 2 недель после регистрации по ссылке – SMMplanner.
Подробно о том, как настроить автопостинг и зачем он нужен, – в статье «Автопостинг в Телеграме: боты, сервисы, возможности».
Одно из главных преимуществ любого бота в Телеграме – его не нужно устанавливать на устройство. Он работает прямо в мессенджере и там остается всегда.
Есть много способов создать бота в Телеграме: на телефоне или ПК, платных и бесплатных, с помощью программирования или конструкторов. А можно – вообще без знания кодов, на телефоне за пару часов.
Мы расскажем вам о бесплатном и самом простом способе создать бота в Телеграме самостоятельно. Подготовьте телефон, листайте вниз и приятного чтения.
Как сделать бота в Телеграме с помощью телефона
Заходим в Телеграм, в строке «Поиск» находим BotFather – это конструктор чат-ботов в Телеграме, нажимаем «Старт».
Единственный минус этого бота в том, что он будет общаться с вами на английском языке. Ничего страшного в этом нет, мы поможем вам разобраться, как с его помощью сделать бота в Телеграме для сообщений и не только. Команды у него интуитивные, так что проблем возникнуть не должно.
Бот пришлет сообщение, что поможет создать и управлять вашими ботами. А чтобы создать нового, нужно нажать на /newbot.
Главный бот предложит вам придумать имя для вашего бота, которое будут видеть все и смогут по этому имени находить его. Название для своего робота вы можете подобрать в зависимости от того, чем вы занимаетесь и какого бота хотите создать. Вообще, название может быть любым. Обязательное правило – чтобы оно было уникальным. Также желательно, чтобы название было понятным.
Если придуманное имя уже существует, BotFather предложит придумать другое, уникальное.
В нашем случае тренировочный бот выступает в качестве магазина одежды. Поэтому мы дали ему название – Showroom «Чёткие шмотки».
После того, как новый бот получил свое имя, а BotFather его принял, он предложит придумать никнейм – это будет ссылка на нового робота в Телеграмме. В нашем случае мы просто перевели название на английский и отправили главному боту.
Робот родился, но он еще ничего не умеет. Ему еще предстоит научиться говорить и ходить.
У каждого бота есть токен – уникальная строка из символов, которая нужна, чтобы установить подлинность робота в системе. Его следует скопировать и не терять.
Все остальное на английском и нам пока не нужно.
Далее листаем чат с BotFather вверх и находим там ссылку /mybots или вводим ее вручную. Выбираем нашего готового бота и нажимаем на него.
В этом разделе старший бот предлагает различные варианты действий с новичком, сейчас нас интересует настройка облика и команд бота.
Для первой настройки нужно нажать Edit Bot. В этом разделе можно редактировать:
- имя;
- описание;
- информацию;
- картинку бота.
На картинке мы видим, что у бота есть только имя. Описания, команд и картинки пока еще нет. Поэтому нам сейчас и предстоит наполнить нашего юного бота.
Как сделать приветствие в боте в Телеграме? Для создания/редактирования описания бота нужно нажать Edit Description, чтобы BotFather понял, что нам нужно изменить описание бота. После выбора этой функции главный бот пришлет сообщение с предложением ввести описание, которое увидят люди, когда откроют чат с новым ботом в блоке под названием «Что может делать этот бот?»
Создайте описание своего бота исходя из того, чем он будет заниматься. Вы в любой момент сможете сменить род деятельности вашего бота и заново наполнить его обязанностями, если что-то пойдет не так.
Мы придумали описание нашему боту. Когда мы заходим в чат, сразу видим его. Теперь бот умеет говорить, для чего он родился. Идем дальше.
После того, как мы придумали описание, выбираем Edit About, чтобы ввести информацию о боте.
BotFather пришлет сообщение с предложением создать описание программы, которое увидят пользователи, когда зайдут в профиль нового бота. Как сделать текст в боте Телеграма – вписать его и сохранить.
Информация о боте готова, текс можно увидеть в чате с BotFather на картинке. Переходим к созданию аватарки.
Выбираем кнопку Edit Botpic, затем нажимаем скрепку, чтобы выбрать фото из галереи и отправляем его главному боту. Также можно сделать фото и использовать его.
Постарайтесь выбрать интересный кадр, чтобы он иллюстрировал суть работы этого бота. Некоторые пользователи ставят картинки роботов, но это совершенно не информативно и смешивает бота с массой других безликих программ.
Аватарка готова. Теперь мы можем увидеть, что бот уже не такой, как был до этого. Робот стал лучше выглядеть, у него есть фото и текст с описанием. Всю эту информацию увидят пользователи – не только, когда они зайдут в профиль, но и когда они поделятся ссылкой на бота с другими людьми.
Пора научить новичка командам. Выбираем пункт меню Edit Commands и получаем от бота такое сообщение: «ОК. Пришлите мне список команд для вашего бота, используя этот формат: command1 – описание; command2 – другое описание. Либо отправьте /empty, чтобы список оставался пустым».
Вы можете создать все команды через BotFather или воспользоваться Manybot. С его помощью вы можете создать красивое меню, разослать сообщения пользователям своего бота, создать команды. И общается он на русском.
Мы создали одну команду и назвали ее «О нас» – для проверки работоспособности. А дальше для настройки действий, меню и команд перешли в Manybot. Так проще. Вы можете поступить как вам удобно.
В Телеграме можно сделать даже свои стикеры. Для бизнеса или для личного использования, порадовать клиентов или посмешить друзей – все на ваше усмотрение. О том, как их делать, мы говорили в статье «Как сделать свои стикеры в Телеграме».
Как настроить нового бота с помощью Manybot
В 2022 году есть еще один конструктор для чат-ботов в Телеграме. Находим Manybot, жмем «Старт» и после приветственного сообщения нажимаем «Добавить нового бота».
Manybot предложит вам перейти в чат с BotFather и скопировать токен своего бота.
Переходим, копируем, нажимаем «Я скопировал токен».
Описание деятельности
После того, как Manybot принял токен нового бота, он предложит коротко описать, чем будет заниматься вновь прибывший бот, но этот момент можно пропустить, нажав команду /skip, как это сделали мы. Тем более, что мы уже описывали это через БотаОтца.
Далее от Manybot придет сообщение, что новый бот создан и настроен. Затем он предложит отправить сообщение вашим подписчикам с ссылкой на вашего бота.
Отправка первого сообщения подписчикам
Конечно, вы можете нажать «Отправить новое сообщение подписчикам», создав какой-нибудь пост. Но какой в этом смысл, если бот еще новичок и ничего пока не умеет? Правильнее и логичнее будет сделать рассылку позже, когда бот будет готов выполнять команды и принимать гостей. Поэтому мы переходим к настройке команд.
Настройка команд
Нажимаем на имя нового бота и переходим в его чат. Теперь разберемся, как сделать меню в боте в Телеграме.
В чате выбираем пункт «Создать команду». Бот ответит вам, что вы можете создавать разные команды, на которые он будет отвечать заранее заданным образом.
Команда создается так же, как и в BotFather – вводим commands и номер. У нас команда уже пятая, так как мы тренировались и настраивали бота и его команды.
В зависимости от того, как вы настроете своего бота, он может отвечать своим подписчикам одним или несколькими сообщениями и любыми файлами.
После запроса commands нужно нажать «Добавить вопрос» и выбрать вариант вопроса.
Есть 3 типа вопросов:
- обычные;
- развернутые;
- с вариантами ответов.
Вы можете выбрать любой удобный. Бот все подробно и на русском языке поясняет.
Мы выбираем «Обычный вопрос», и наш бот будет отвечать любому подписчику, который пришлет ему текст, символ или даже картинку.
А что будет отвечать наш бот?
Даем произвольное название нашему обычному вопросу – «Головные уборы», загружаем картинку из галереи и нажимаем «Сохранить». То, что будет написано, покажется пользователям, которые будут запрашивать этот пункт.
Если понадобится отредактировать, нужно в меню бота выбрать пункт «Пользовательские команды» и выбрать ту команду, которую хотите изменить. В любой момент вы можете изменить название, режим и варианты ответов, настроить меню команды.
После сохранения команда готова, но у пользователей она не появится, когда они зайдут в меню. Для этого нужно настроить ее видимость.
Настройка видимости команды
Выбираем «Настроить гл. меню», а затем «Добавить пункт меню».
Вводим название пункта меню «Головные уборы», отправляем боту это сообщение, и готовый пункт с этим названием появляется в меню.
Остальные пункты меню были созданы ранее тем же способом. Чтобы поменять их местами, в этом же меню выбираем нужную для перемещения команду и с помощью кнопок, которые будут доступны, перемещаем.
Как выглядит готовый к использованию бот
Вот так выглядит наш готовый бот с аккаунта подписчика:
Выбираем команду «О нас», чтобы посмотреть, поймет ли читатель, куда попал. И получаем ответ от бота «О нашей компании».
Можно ему ответить любым текстом и получаем в ответ: «Пример текста. Наша компания занимается…» Это то, что мы указали в настройках. Вы можете здесь написать все что угодно о своей компании. Старайтесь рассказывать коротко, но понятно. Или просто вставьте ссылку на свой сайт, чтобы люди могли туда зайти и почитать подробнее. Перегружать чат многостраничными сообщениями об «активно развивающейся компании» не стоит, человек вряд ли пришел за этим. А если ему очень интересно, он почитает на сайте.
В зависимости от настроек команд и их описания, бот может долго присылать пользователям разные варианты картинок, ответов, ссылок – все, что вы в него заложите.
Чем больше вы настроите кнопок и зальете информации, тем больше пользователь сможет узнать от вашего бота. Вполне можно вместе с картинкой показывать подписчику карточку товара или ссылку на него, чтобы он мог сразу переходить к заказу.
Головные уборы рассмотрели, а что там в пункте «Одежда»? Он настроен аналогично предыдущему, присылает картинки и общается с пользователем. Можно настроить сложную ветвь вариантов ответов, ведущих к разным пунктам и папкам. В ней подписчик будет плавно переходить к покупке, подписке или регистрации.
Любое сообщение, например, с новой коллекцией товаров, может приходить подписчикам, если его разослать от имени бота. Мы говорили об этом в самом начале, нужно только кликнуть по кнопке и отправить его.
Если нужно подробно изучить чат-боты и рассылки в ВК, приходите на 14-дневный практический курс «Рассылки, чат-боты и автоворонки ВКонтакте» от SMM.school. Там научитесь автоматизировать работу с помощью Senler, запускать рассылки, прогревать и продавать во ВКонтакте. Это самое актуальное руководство по автоматическим инструментам для продвижения бизнеса в ВК на данный момент.
Мы разобрались, как создать и настроить бота в Телеграме, как сделать меню и настроить чат. Ваш бот получится еще более продуманным, ведь вы создадите его для конкретных целей, а не ради эксперимента. Создавайте бота и рассылайте сообщения подписчикам, а мы скоро расскажем в нашем блоге, как подключить его к вашему каналу и научить говорить в нем с подписчиками.
Вы можете самостоятельно создать бота в Telegram без программирования. Повторите действия по инструкции и бесплатно запустите своего первого чат-бота уже через 15 минут.
Создадим бота, который будет приветствовать, задавать вопрос с вариантами ответов и реагировать на нажатие на кнопок.
Шаг 1. Создайте аккаунт разработчика
1. Зарегистрируйтесь на botmother.com с помощью электронной почты (на нее придет письмо с подтверждением) или войдите через Google.
2. Нажмите кнопку «Создать нового бота» (справа внизу).
3. Выберите «Пустой бот».
Перед вами откроется конструктор— это место, где можно разрабатывать бота и добавлять функции.
Слева находится меню с разделами конструктора. Справа — вкладка с компонентами и экранами. По центру — рабочая зона для разработки. В левом нижнем углу — виджет обратной связи. Если возникнут трудности, пишите в поддержку.
Логика бота создается с помощью экранов— это сообщения бота (шаги, этапы), внутри которых могут быть различные функции. Автоматически создается «Стартовый экран» — первое сообщение от бота.
На каждый экран можно добавлять компоненты— это функции и действия бота (например, отправление текста, картинок, кнопок и т.д.).
Все компоненты расположены на вкладке справа.
Шаг 2. Создайте приветствие
1. На вкладке «Компоненты» нажмите на компонент «Сообщение» и перетяните его на экран.
2. Напишите любой текст. Например, «Привет! Это мой первый бот».
3. Нажмите зеленую кнопку «Сохранить» (справа внизу).
Шаг 3. Подключите бота к мессенджеру
В Telegram чат-боты создаются с помощью специального бота @BotFather. Через него можно управлять данными бота, добавить описание, аватар и т.д.
Создадим бота и придумаем ему название:
2. Напишите ему /newbot.
3. Придумайте и напишите название бота. Оно будет отображаться в контактах и чатах. Например, «Hello, bot».
4. Придумайте и напишите юзернейм. Он используется для упоминания бота и в ссылках. Юзернейм должен быть на латинице и обязательно заканчиваться на «bot». Например, «botmother_hello_bot».
Теперь нужно подключить бота в Telegram к вашему аккаунту разработчика:
2. Скопируйте токен бота.
3. Вернитесь в конструктор, найдите и откройте в меню слева раздел «Настройки».
4. Переключателем включите платформу Telegram.
5. Нажмите кнопку «Изменить».
6. Вставьте ранее скопированный токен бота.
7. Сохраните изменения.
Теперь бот подключен к конструктору, а значит, он может отвечать всем пользователям. Протестируем?
1. Найдите в поиске Telegram своего бота по юзернейму.
2. Нажмите «Начать» (или «Start»). Бот должен отправить приветственное сообщение.
Отлично! Ваш бот умеет отправлять сообщение.
Шаг 4. Добавьте дополнительные функции
Усложним бота. Пусть он задает вопрос с вариантами ответов и присылает разные сообщения в зависимости от выбора пользователя.
Например:
Текст: Как дела?
Первая кнопка: Хорошо
Вторая кнопка: Плохо
Для этого добавим еще два экрана, кнопки и изображение:
1. Откройте конструктор.
2. Добавьте два новых экрана. Для этого нажмите кнопку «Добавить экран» дважды.
3. Сохраните изменения.
Можно изменить названия добавленных экранов двойным кликом:
1. Два раза кликните на названия экранов.
2. Отредактируй тексты. Например, «Экран Хорошо» и «Экран Плохо».
Добавим кнопки, на которые пользователи смогут нажимать:
1. Переместите компонент «Кнопки» на «Стартовый экран».
2. Напишите текст. Например, «Как дела?».
3. Добавьте две кнопки.
4. Напишите тексты на кнопках. Например, «Экран Хорошо» и «Экран Плохо».
Каждая кнопка должна вести на определенный экран, который указывается в настройках кнопки:
1. Нажмите на первую кнопку.
2. В поле «Переход на экран» выберите экран «Экран Хорошо».
3. Нажмите на вторую кнопку.
4. Выберите другой экран — «Экран Плохо».
5. Сохраните изменения.
Итак, на «Стартовом экране» пользователь нажимает на кнопки и попадает на разные экраны. Нужно заполнить их контентом:
1. Переместите компонент «Изображение» на экран «Экран Хорошо».
2. Загрузите любую картинку или вставьте ссылку на изображение.
3. Сохраните изменения.
Теперь заполним следующий экран:
1. Переместите компонент «Сообщение» на экран «Экран Плохо».
2. Напишите текст. Например, «Не унывай, все будет хорошо!». Можно добавить эмодзи.
3. Сохраните изменения.
Все готово!
Шаг 5. Протестируйте бота
У нас получился такой сценарий: бот приветствует пользователя и задает вопрос с вариантами ответов; пользователь нажимает кнопку, и бот присылает определенное сообщение. Давайте протестируем!
1. Откройте своего бота.
2. Напишите команду /start.
3. Понажимайте на кнопки.
Поздравляем!
Вы создали своего бота и можете поделиться им с друзьями. Как видите, создавать ботов легко и просто. В конструкторе богатый функционал, позволяющий создавать самых разных ботов: для автоматизации, маркетинга, продаж, развлечений и много других.
Можете поэкспериментировать с ботом: изменить тексты, добавить новые экраны и компоненты или изменить сценарий. Дополнительную информацию можно найти в базе знаний, а вопросы пишите через виджет обратной связи.
Изначально Telegram был обычным мессенджером для базовой отправки сообщений. Чуть позже он начал обрастать новыми функциями. Многим Телега начала заменять другие социальные сети и даже самые разные сервисы интернета.
На сегодняшний день, Телеграм — это огромный интернет-комбайн, где можно:
- Вести переписки, как в открытых чатах, так и в приватных (статья о секретном чате)
- Читать новости или потреблять другой контент с помощью каналов
- Загружать и скачивать файлы, тем более недавно появился менеджер загрузок
- Совершать купле-продажу разных типов товаров (даже писали об этом вот тут)
- Слушать музыку
Практически во всех вышеперечисленных случаях помогают именно боты. Например, для прослушивания музыки помогает бот, который переносит музыку из плейлистов ВКонтакте и загружает в свой канал. А при продаже товаров запускается бот, с помощью которого можно листать список товаров, класть их в корзину и оттуда оформлять покупку.
Без помощи ботов это было бы сделать очень затруднительно. Если проще, то боты в Telegram автоматизируют какое-либо действие.
Впрочем, ранее мы уже писали о популярных ботах в Телеграме вот здесь.
Создание бота в Telegram: пошаговая инструкция
Итак, пойдем по порядку. Для создания своего бота нам понадобится юзернейм @BotFather, вот этот:
Нажимаем «Запустить», и в ответном сообщении сразу присылается меню. Оно на английском, но ничего сложного нет.
Выбираем /newbot, далее в сообщении пишем название своего нового бота.
Далее указываем username бота, по которому его можно будет найти, обязательно чтобы юзернейм заканчивался на «bot».
Наше рабочее название будет «GTOnidzuka_bot», далее мы его переименуем. Если юзернейм занят, то выбираем другой. Также BotFather присылает уникальный ключ, подобие пароля от бота, его никому нельзя показывать.
После того выбора имени нашего бота можно найти в поиске Телеграм или зайти на него по ссылке.
Теперь нам доступно редактирование бота. С помощью команд можно изменить аватарку, общее название, описания и т.д. Также в боковую кнопку «Меню» можно зашить ссылку на сайт или социальную сеть.
Основные команды в BotFather:
- /setname — изменить имя бота
- /setdescription — изменить описание бота
- /setuserpic — изменить аватарку бота
- /setcommands — задать команды для бота
- /deletebot — удалить бота
Наш бот создан и отображается в поиске, но пока еще ничего не умеет.
С помощью уникального токена и юзернейма бота можно подключить к различным сервисам и платформам.
Для нашей компании мы попробуем подключить бота через Manybot, он практически единственный позволяет пользоваться ботом для бизнеса бесплатно.
Для начала переходим на официальный сайт и пролистываем вниз страницы, где есть кнопка со ссылкой в Телеграм.
Итак, попадаем в Телегу к Manybot и там имеется русский интерфейс, что очень радует.
Тут нам и пригодится наш ранее скопированный ключ. Вставляем его в строку и отправляем. Далее нужно написать пару слов о том, что будет делать наш бот. У нас будет простой инфобот. Так и запишем.
Для теста мы создали новый канал. Но если есть уже хороший раскрученный канал, то можно внедрить и его.
Чтобы у бота в нем была власть, он должен быть администратором этого канала. Заходим в канал, добавляем нашего бота и даем ему все разрешения на управление каналом.
Для подключения канала к боту, нужно отправить тестовое сообщение. И да, нам пришло уведомление в канале. Простейшие функции уже работают.
Теперь мы можем настроить автопостинг, отложенный постинг и создавать другие команды.
Окей, давайте создадим парочку команд:
Первая команда будет отправлять ссылку на наши услуги. Для этого заходим в «Отца ботов», печатаем /setcommands и выбираем нашего бота. Также можно воспользоваться кнопками меню, кому как удобнее.
В строке пишем название команды, оно может быть любым, главное на латинице и через тире пишем описание команды, у нас это «Услуги и цены», далее нажимаем «Сохранить».
Команда создана, но она пуста. Теперь ей нужно задать действие. Для этого переходим в наш бот, далее в «Пользовательские команды», среди них выбираем наш «bang» и жмем «Редактировать ответы команды».
Сейчас нужно напечатать сообщение к команде — это как раз и есть ответное действие на ее вызов. Ранее мы решили, что при вызове команды, ответом будет ссылка на наш сайт. Поэтому просто вставляем ссылку.
Теперь при вызове команды /bang, в ответе будет ссылка на наш сайт.
Заметили, что также есть кнопка «Добавить вопрос»? Это некая форма обратной связи, если его добавить, то при вызове команды пользователю будет задан этот вопрос.
Добавим нетривиальное сообщение. После отправки нашего вопроса, предложим два варианта ответа для выбора пользователя.
Так выглядит итоговый результат. После того как пользователь тапнет на одну из кнопок, нам придет уведомление об ответе.
А вот и новые ответы на форму:
Если пользователь тапнет на «Хочу заказать услугу», то пользователя можно найти и написать ему.
Как вариант, можно добавить вопрос, на который пользователь сам ответит и будет иметь возможность прислать свой номер телефона для связи.
Далее мы создали еще несколько команд по похожему принципу. Сделали мы это для того, чтобы добавить полноценное меню с кнопками. Ведь пользователям будет очень неудобно вручную каждый раз набирать команду.
На этот раз добавили команды для всех подразделов нашего блога. Перед этим добавив команду /blog, она будет корневой.
Для удобства и лучшего восприятия все команды заканчиваются на blog, так как если мы решим добавить команды с услугами, будет проще в них ориентироваться.
Итак, у нас есть много команд, которые мы будем обрамлять в удобные кнопки меню. Но сперва «зашиваем» в команды ссылки на наши подразделы блога как это описано выше.
Для добавления кнопок жмем на «Пользовательские команды», а далее кликаем на «Настроить главное меню».
Затем нажимаем на «Добавить пункт меню». Из ранее добавленных команд выбираем доступную, задаем ей имя, которое будет отображаться и кликаем «Сохранить».
Таким образом мы добавили кнопки для всех основных команд. Также добавили кнопки социальных сетей и контактов.
Вот так теперь выглядит наш бот.
При переходе в социальные сети появляются их кнопки:
А при переходе в блог сперва появляется опрос:
Конечно, не совсем логично, новичкам сперва бы блог почитать, но от постоянных читателей нам важен фидбек.
И далее появляются его подразделы.
В целом, если публиковать статьи в том же Telegraph и добавлять их в бота, то материалы можно читать, даже не выходя из Telegram.
Если зайти с другого аккаунта, бот отображается вот так:
Наш бот подключен к тестовому каналу, через него (бота), можно отправлять сообщения пользователям. К примеру, оповещение о новой записи в блоге, например.
Для этого в главном меню бота нажимаем на «Отправить новое сообщение пользователям», печатаем наше сообщение и жмем «Отправить пост подписчикам».
Прежде чем отправить пост, можно посмотреть, как он будет выглядеть, или задать время для публикации.
Спустя пару секунд придет уведомление о новой статье в блоге.
Также мы прикрутили автопостинг с помощью RSS-ленты. Кстати, в одной из наших статей писали, что это и как ее подключить, рекомендуем прочесть здесь.
Помимо RSS, можно подключить и Youtube.
Так просто?
Вуаля — теперь наш совсем простой бот умеет показывать нужную информацию пользователю, хоть и за счет ссылок, а также принимать обратную связь. Конечно же, функционал этим не ограничивается и с помощью ботов можно создать нечто большее, но это уже совсем другая история.
А если вы еще не подписаны на наш канал, то советую исправить это недоразумение. Делимся только полезными новостями из мира SEO и интернет-маркетинга.
Вас ждёт пошаговая инструкция и пример настройки.
Что нужно знать, прежде чем создавать бота в Telegram
Боты являются своего рода программами, которые умеют выполнять разные функции — от предоставления информации до управления устройствами — и работают прямо в мессенджере.
Взаимодействие осуществляется как с помощью заранее заготовленного набора команд, так в виде живого общения. В зависимости от возлагаемых на бота задач его можно добавить в канал или чат, а также подключить к платформам автоматизации и различным сервисам. Более сложные возможности реализуются с помощью программируемых скриптов, которые составляют разработчики.
Но так или иначе сначала бота нужно создать. Делается это следующим образом.
Как создать бота в Telegram
Чтобы сделать своего бота, понадобится другой бот — BotFather. Это официальный инструмент для создания ботов и управления ими. Найти BotFather можно через поиск. Обратите внимание на синюю галочку рядом с именем: именно она укажет на правильный чат.
Запустите диалог с ним и нажмите «Начать».
Кликните по кнопке меню и выберите /newbot.
BotFather попросит назвать вашего бота. Введите желаемое имя и нажмите «Отправить».
Следующим шагом нужно придумать боту никнейм. Он должен быть уникальным и заканчиваться на bot. Если эти условия не выполняются, BotFather просит сочинить другой.
Далее BotFather предоставит ссылку на созданного бота и токен для обращения к нему. Ссылка нужна для поиска бота, ею можно делиться. А вот токен — длинный набор символов — вещь секретная. Это своеобразный ключ, с помощью которого осуществляется управление программой. Сохраните его в надёжном месте и никому не показывайте.
После этого с ботом, по сути, можно работать. Если перейти по выданной в предыдущем шаге ссылке, откроется диалог с ним. Правда, без настройки он пока ничего не сможет сделать.
Как настроить бота в Telegram
В зависимости от того, для чего вам требуется бот, его нужно будет подключить к различным сервисам и платформам автоматизации. Для этого в процессе настройки понадобится указать имя бота и его токен.
Также при желании можно добавить описание (/setdescription), прикрепить аватар (/setuserpic) или сменить имя (/setname). Все эти действия осуществляются через меню в BotFather. Если у вас несколько ботов, то сначала придётся выбрать нужный из списка.
В качестве наглядного примера мы создадим простого чат-бота с помощью бесплатного сервиса Manybot. Он не требует навыков программирования и работает прямо в Telegram. Наш бот будет предлагать полезную информацию для читателей: книги и подкасты Лайфхакера, а также открытые вакансии и возможность связи с редакцией. Принцип работы несложный: пользователь переходит в нужный чат по ссылке, запускает одну из команд, нажимая на кнопку в меню, и получает ответ на свой вопрос. Вот какие этапы включает настройка.
Подключение бота
Сначала нужно открыть чат с Manybot, перейдя по ссылке, и нажать «Начать».
Затем выбрать удобный для вас язык.
Кликните «Добавить нового бота».
А вот теперь понадобится токен созданного ранее бота, который выдал BotFather. Нажмите «Я скопировал токен» и отправьте его Manybot.
Добавьте описание бота, которое будут видеть пользователи, или пропустите этот шаг.
Создание команд
Далее вернитесь к своему боту, которого создали с помощью BotFather, и нажмите «Начать».
Выберите «Пользовательские команды».
Затем — «Создать команду».
Придумайте название команды латинскими буквами, начиная со слеша.
Впишите текст, добавьте ссылки или фото, которые увидит пользователь после вызова команды. Сообщений может быть несколько. Нажмите «Отправить», а затем «Сохранить».
Таким же образом через меню «Создать команду» добавьте остальные команды, которые вам нужны. В нашем примере это подкасты, вакансии и обратная связь.
Добавление кнопок в меню
Чтобы пользователи могли взаимодействовать с ботом через графический интерфейс, а не вводить команды вручную, необходимо добавить кнопки для каждой из них. Для этого нажмите «Настроить гл. меню».
Кликните «Добавить пункт меню».
Выберите нужную команду.
Придумайте название для кнопки и нажмите «Отправить».
По такому же принципу добавьте кнопки для других команд.
Проверка работы бота
Перейдите по ссылке на бота. Пользователи увидят только добавленные команды, у вас же будет отображаться расширенное меню с настройками.
Протестировать бота из нашего примера и посмотреть, как выглядит работа с ним, можно по этой ссылке.
Читайте также 📱📳📲
- 10 маленьких хитростей для пользователей Telegram
- Как сделать анимированный стикер в Telegram
- 10 возможностей Telegram, о которых полезно знать
- Как создать канал в Telegram
- Какую платформу для блога выбрать