Как запустить Телеграм бота

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

Где искать нужный сервис

Как узнать о боте подробнее?

Вся дополнительная информация описывается разработчиком на этапе создания. Для пользователя она также доступна:

  1. Щелкните по названию программы бота в списке вашего аккаунта.
  2. В верхней строке нажмите на название. Если вы пользуетесь web-версией, то нажмите по логотипу справа от строки ввода сообщений.
  3. Откроется окно, в котором вы увидите описание и правильное название.

Деплой телеграм бота на vps сервер. Как запустить несколько ботов на одном vps сервере.

Также информация появляется при старте робота.

Как в Телеграмм добавить бота?

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

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

Как добавить бота в Телеграмм в группу

  1. Создайте группу Телеграмм. Для этого нажмите значок главного меню в верхнем левом углу и щелкните по нужному пункту. Укажите контакты участников и введите имя группы.
  2. Откройте группу и щелкните по ее названию сверху (логотип группы около строки ввода в web-версии).
  3. Найдите пункт «Добавить участника» (Add member для нерусифицированного мессенджера).
  4. В окне нажмите значок лупы и введите название добавляемого робота.
  5. Подтвердите согласие и программа появится в группе.

Как добавить бота в беседу разобрались. Осталось узнать, как добавить бота в канал Телеграмм. Для этого выполните следующие действия:

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

Программируем телеграм бота и деплоим на Heroku!

Источник: telegramzy.ru

Гайд: как создать чат-бота
в Телеграме

Сегодня выигрывает тот бизнес, где клиент получает ответ на запрос быстро, четко и по существу. Рост популярности голосовых и текстовых ботов происходит по всем каналам. Особенно в этом преуспел Telegram: у площадки user-friendly интерфейс и развитое API для запуска ботов.

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

Артем Мельников, менеджер продукта

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

Эксперты Just AI

Артем Мельников

Артем Мельников
менеджер продукта

Екатерина Пойманова

Наталья Лаптиева
руководитель технической поддержки
Содержание

Этап № 1. Анализируем

Отдельный этап разработки – понять, для кого и ради чего нужен чат-бот. Ведь у вас появится полноценный онлайн-сотрудник с высочайшей производительностью. Боты могут развлекать, обучать, консультировать в чате, по телефону или в рассылке и все это в режиме 24/7.

Чаще всего ботам поручают скучные и рутинные процессы. Например, банк напоминает клиентам о текущем платеже, а поликлиника оформляет визит врача на дом пациентам с острой болью. Определив бизнес-модель и функционал бота, вы сможете прописать его tone of voice и найти подходящую технологическую платформу.

Еще по теме:  Если в Телеграмм есть личная страничка как создать еще страничку канала

Этап № 2. Выбираем решение

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

Если вам нужен бот с несложной логикой и узкой специализацией, подойдет и готовое решение. Когда требуется реализация сложных сценариев, стоит задуматься об использовании профессиональных инструментов разработки – диалоговых платформ и фреймворков

Наталья Лаптиева

Этап № 3. Пишем сценарий

Хороший сервис должен быть незаметен. С ботами эта логика действует как нигде еще. Разрабатывая сценарий, вы должны «думать как клиент». Чтобы этого добиться, нужно сформировать базу знаний клиентского опыта. Именно вы понимаете контекст и истинные потребности своих заказчиков.

Сценарий – это диалог между ботом и клиентом.

Пример сценария в редакторе Aimylogic

Готовые решения для создания ботов помогают разработать сценарий быстрее и проще. Например, в Aimylogic уже встроены готовые интенты. Вам только остается подключить нужный блок в диалог. Созданный бот может не только отправлять сообщения, но и делиться картинками, стикерами, музыкой. Это нужно учитывать при написании сценария.

Готовые интенты — это заранее подготовленный список возможных реакций клиента, например, на приветствие или прощание.

Готовые интенты в Aimylogic

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

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

Артем Мельников
После того, как сценарий создан, можно переходить в Telegram.

Этап № 4. Публикуем бота

Если название не занято, BotFather сгенерирует боту ссылку и токен. С помощью токена вы сможете сменить имя /setname, добавить описание /setdescription и аватар /setuserpic. На этом же этапе подумайте, каких кнопок с командами не хватает вашему боту. Для их создания нужно зайти в раздел «Настроить гл. меню».

Токен – уникальный ключ, который используется для доступа к Bot API.

Когда токен получен, нужно перейти в настройки каналов в том продукте, который вы используйте. Например, в Aimylogic – это раздел «Каналы». Там нужно выбрать Telegram, в поле токен вставляется код, полученный в мессенджере. Если все сделано правильно, индикатор загорится зеленым — наш бот опубликован.

Теперь можно перейти в приложение Telegram и протестировать его работу.

Раздел «Каналы» в Aimylogic

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

Наталия Лаптева

Этап № 5. Оцениваем эффективность

Создание Telegram-бота на Java: от идеи до деплоя

Java-университет

Создание Telegram-бота на Java: от идеи до деплоя - 1

Что же такое вообще боты? Подробно почитать об этом можно здесь. Для начала вам необходимо ознакомиться с официальной документацией к библиотеке для разработки ботов на Telegram(далее API). Лежит она здесь. Там все очень доступно и понятно. Казалось бы, пиши да радуйся!

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

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

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

Еще по теме:  Как узнать свой хеш в Телеграмме

Если вы желаете хорошо освоить Hibernate или научиться парсить JSON, то такой проект для вас. Начнем с того чтобы подключить зависимость в pom.xml (подразумеваем что вы используете Maven). Сделать это можно так:

org.telegram telegrambots 3.5

Затем создаем класс Bot , унаследуем его от класса TelegramLongPollingBot , переопределив его методы:

Ну и содержимое метода main :

public static void main(String[] args) < ApiContextInitializer.init(); TelegramBotsApi telegramBotsApi = new TelegramBotsApi(); try < telegramBotsApi.registerBot(Bot.getBot()); >catch (TelegramApiRequestException e) < e.printStackTrace(); >>

Вписав в методы getBotUsername() и getBotToken() мы запускаем бота. Пока он только перенаправляет нам любые сообщения, которые мы отправим ему, этакое «зеркало».

Работает это все следующим образом: когда вы запускаете приложение, оно начинает раз в n количество секунд отправлять на сервер Telegram GET запрос по следующему URL: https://api.telegram.org/BotToken/getMe, где BotToken – токен вашего бота, получая в ответ JSON, в котором находятся все сообщения. Каждое такое сообщение обрабатывается библиотекой и приходит в метод OnUpdateReceived(Update update) объектом Update . С ним то мы и работаем.

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

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

А можете научиться интегрироваться к CRM-системам и делать ботов для малого бизнеса, все ограничено вашей фантазией. Идем дальше. Те, кто пользовался ботами знают, что с ними удобно взаимодействовать командами, начинающимися со знака «/» , например /start . Но есть способ удобнее — кнопки. Есть два вида кнопок: те, что появляются под полем ввода, ReplyKeyboardMarkup и кнопки, которые находятся непосредственно под сообщением, к которому привязаны, InlineKeyboardMarkup . В документации вы можете поверхностно ознакомиться с их описанием. ReplyKeyboardMarkup. По сути это — массив массивов кнопок, List> . Вот пример кода, который создает клавиатуру

public synchronized void setButtons(SendMessage sendMessage) < // Создаем клавиуатуру ReplyKeyboardMarkup replyKeyboardMarkup = new ReplyKeyboardMarkup(); sendMessage.setReplyMarkup(replyKeyboardMarkup); replyKeyboardMarkup.setSelective(true); replyKeyboardMarkup.setResizeKeyboard(true); replyKeyboardMarkup.setOneTimeKeyboard(false); // Создаем список строк клавиатуры Listkeyboard = new ArrayList<>(); // Первая строчка клавиатуры KeyboardRow keyboardFirstRow = new KeyboardRow(); // Добавляем кнопки в первую строчку клавиатуры keyboardFirstRow.add(new KeyboardButton(“Привет”)); // Вторая строчка клавиатуры KeyboardRow keyboardSecondRow = new KeyboardRow(); // Добавляем кнопки во вторую строчку клавиатуры keyboardSecondRow.add(new KeyboardButton(“Помощь”); // Добавляем все строчки клавиатуры в список keyboard.add(keyboardFirstRow); keyboard.add(keyboardSecondRow); // и устанваливаем этот список нашей клавиатуре replyKeyboardMarkup.setKeyboard(keyboard); >

В методе sendMsg() мы вызываем этот метод, передавая ему сообщение, таким образом устанавливая для такого сообщения клавиатуру.

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

InlineKeyboardMarkup Это тоже массив массивов, он похож на предыдущий Markup, но логика работы здесь немного другая. Такая клавиатура привязывается к определенному сообщению и существует только для него. Вот метод для установки Inline-клавиатуры

private void setInline() < List> buttons = new ArrayList<>(); List buttons1 = new ArrayList<>(); buttons1.add(new InlineKeyboardButton().setText(“Кнопка“).setCallbackData(17)); buttons.add(buttons1); InlineKeyboardMarkup markupKeyboard = new InlineKeyboardMarkup(); markupKeyboard.setKeyboard(buttons); >

Создаем List в List , добавляем в первую строку Inline-кнопку. Такая кнопка может содержать URL, ссылку на канал или же CallbackQuery , о которой я напишу чуть позже. Здесь мы устанавливаем текст для нашей кнопки, который будет видеть пользователь, а затем устанавливаем данные, которые будут отправлены боту. В нашем примере пользователь видит «Привет», а боту при нажатии отправится число 17, это и есть наш CallbackQuery . Пару слов о CallbackQuery . Для получения таких данных из объекта Update нужно выполнить update.getCallbackQuery() , этот метод возвращает CallbackQuery , из которого уже можно получить данные, переданные боту. Не нужно пытаться получить эти данные через метод update.getMessage().getText() , получите NullPointerException .

Еще по теме:  Как заспамить человека в ТГ

Если есть сообщение, отправляем на обработку в новый поток сообщение, если есть CallbackQuery , отправляем его на обработку в соответствующий поток. На CallbackQuery можно отправлять ответ. У каждого объекта в Telegram есть свой id. Для отправки ответа на определенный CallbackQuery нужно знать лишь его id, который мы получим из соответствующего объекта. Для отправки ответа вызовем такой метод:

public synchronized void answerCallbackQuery(String callbackId, String message) < AnswerCallbackQuery answer = new AnswerCallbackQuery(); answer.setCallbackQueryId(callbackId); answer.setText(message); answer.setShowAlert(true); try < answerCallbackQuery(answer); >catch (TelegramApiException e) < e.printStackTrace(); >>

ВАЖНО: Текст в ответе на CallbackQuery должен быть не длиннее 200 символов! При отправке такого ответа клиент получит всплывающее окно, в котором будет написано сообщение.

Такое окно может исчезнуть через несколько секунд само после появления, а может висеть до тех пор, пока пользователь не нажмет ок. Для переключения этих режимов мы вызываем метод answer.setShowAlert(true) . При true окошко висит до нажатия ок, при false исчезает через 5 секунд. В принципе это все базовые фишки библиотеки Telegram bot.

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

Когда же к нему будет отправлен запрос, он просыпается. Это происходит довольно быстро, вы даже не заметите(если конечно коннект к БД не поднимается заново). Ограничение на бесплатный тариф — 5MБ база данных, 100МБ дисковое пространство, 2ТБ траффика в месяц, 1 дино. Дино — это ваше запущенное приложение.

Скажу сразу, именно стадия деплоя вызвала у меня трудности, так как я до этого никогда не разворачивал свои приложения. Heroku при деплое требует наличия файла с именем Procfile(без расширения). Создаем его в корне проекта, пишем туда worker: sh target/bin/workerBot workerBot – имя, которое мы указываем в pom.xml Будет запускаться sh скрипт, генерируемый с помощью Maven плагина appassembler-maven-plugin. В скрипте описан запуск скомпилированного jar. Имя запускаемого класса указывается между , имя скрипта между pom.xml:

. . org.codehaus.mojo appassembler-maven-plugin 1.1.1 target com.home.server.TelegramBot workerBot package assemble

Перед началом этого процесса вам следует зарегистрироваться на Heroku, установить Git и Heroku CLI.

Если вашему приложению необходима БД, то при оформлении нового приложения не забудьте добавить нужную вам БД. Далее вам необходимо узнать host, username, password и port вашей БД, а после указать в своем приложении. Далее перед деплоем выполните сборку вашего проекта с помощью Maven.

mvn clean install

Для начала мы переходим в каталог нашего проекта, инициализируем репозиторий командой git init Затем добавляем в этот репозиторий свой проект

git add .
После коммитим изменения
git commit -m “First commit in project”
Далее вам нужно залогиниться на heroku, пишем в командной строке
heroku login

Вводим свои данные, указаные при регистрации.

После вам нужно узнать URL вашего репозитория на heroku, делается это в настройках. Затем пишем

git remote add heroku [url]
Для вашего репозитория добавится удаленный репозиторий heroku. Далее пишем
git push heroku master
Ждем… При успешном деплое приложения выполняем команду

heroku ps:scale worker=1

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

Источник: javarush.com

Рейтинг
( Пока оценок нет )
Загрузка ...