Как легко создать бота в Telegram для своего бизнеса
Телеграмом в мире пользуются 200 миллионов человек, а его аудитория — одна из самых быстрорастущих среди мессенджеров. Бизнес активно переходит в Telegram, используя каналы и боты для продаж и коммуникации с клиентами.
И наконец, долгожданный релиз от SendPulse — чат-боты в Telegram пополнили компанию ботов ВКонтакте и Facebook Messenger.
Возможности чат-ботов Telegram от SendPulse:
- Отправка сообщений-автоответов и цепочек сообщений, когда срабатывает заданный триггер, добавление переменных, тегов, отправка веб-хуков по действиям внутри цепочки.
- Возможность сохранить введенные пользователем данные в переменные.
- Сегментация на этапе отправки рассылки по датам подписки, активности, тегам и переменным
- Виджет подписки на бота Telegram, VK и Facebook Messenger для сайта. В одном виджете вы можете объединить кнопки подписки на все три мессенджера.
- Объединенный лайв-чат с подписчиками страниц Telegram, VK и Facebook Messenger в панели SendPulse.
Из этой статьи вы узнаете, что такое боты в Telegram и на наглядных примерах увидите, где и как они используются в бизнесе. Я также покажу, как в SendPulse создать чат-бота в Telegram и подробнее опишу возможности сервиса.
Что такое чат-бот в Telegram
Это программа, которая работает в мессенджере и часто имитирует живое общение с пользователем в чате. Чат-бот запускает разные варианты предустановленных цепочек в ответ на нажатие определенных кнопок и на ввод слов в чате.
Чат-бот может запрашивать информацию от пользователя — номер телефона, email адрес, город, день рождения и другие данные, чтобы переносить их в переменные. С помощью чат-бота в Telegram можно отправлять рассылки по всему списку контактов бота с персонализацией, используя имеющиеся данные подписчиков для сегментации.
Чат-бот в Telegram для бизнеса — как и где можно использовать
Чат-боты могут здорово применяться для самых разных нужд малого, среднего и большого бизнеса — записи на консультацию, ответы на частые вопросы в службах поддержки и отделах продаж, поиск сотрудников и многое другое. Примечательно, что Telegram боты задействованы как в B2C, так и B2B сфере. Сейчас я расскажу подробнее, где и как они будут полезны.
Инфобизнес
Вы можете презентовать себя и продукт, вложить максимум полезной информации для пользователя, работать с опасениями и возражениями, записать на консультацию, передать лид-магнит и продать трипваер, и наконец, продать основной продукт. Про воронку инфобизнеса мы подробно рассказывали в кейсе на блоге.
Event индустрия
Регистрация на мероприятие, сегментация аудитории по городам, странам и другим признакам. Дальнейшие рассылки по аудитории, включая отправку материалов и записей конференции. В SendPulse практика применения чат-ботов для ивентов уже давно и стабильно используется.
Продажи
Описание продукта, информация о компании, оплата и доставка, распределение на чат с оператором. Присвоение клиентам тегов и переменных для дальнейшего их прохождения по воронке продаж и стимулирования повторных продаж.
Служба поддержки
Первичная обработка обращений, часто задаваемые вопросы, распределение по темам и сложности вопросов. Если грамотно продумать логику бота и учесть индивидуальное построение вашей службы поддержки, то вы сможете частично разгрузить ее первую линию.
Клиники
Узнать о клинике и ее специалистах, получить ответы на частые вопросы и записаться к врачу, отменить прием или изменить время и дату, перенаправить на чат с оператором.
Новостные сайты
Через чат-бот вы можете подписать пользователя на регулярные обновления вашего новостного портала или блога. Хорошо, если в логику бота входит не просто подписка на общий фид, но и выбор интересующих разделов сайта и частоты рассылки. Также можно включить и опцию для связи с PR отделом для рекламодателей и инфопартнеров.
HR
Поиск сотрудников через чат-бота: отсеять кандидатов, передать в работу тестовое задание. C помощью чат-бота Роман Рыбальченко искал сотрудника в свое агентство и написал об этом кейс для нашего блога. Он создал чат-бот в Facebook Messenger через SendPulse, аналогичный бот вы можете построить и в Telegram.
Моя подруга, которая работает менеджером по персоналу в IT компании с тысячами сотрудников, создала бота в Телеграм для ответа на частые вопросы сотрудников по медицинскому страхованию. Через него также можно получить доступ к списку клиник и всем необходимым документам по страховке. Получается очень удобно — и ее не дергают лишний раз и вся информация находится в одном месте.
Кафе и рестораны
Посмотреть меню, заказать блюдо, забронировать столик, оставить отзыв, связаться с менеджером ресторана, отправить рассылку с новостями, специальными предложениями и обновлениями меню. Все можно сделать с помощью чат-бота в Telegram. Особенно это актуально, если вы ведете свое сообщество в Телеграме и у вас есть там аудитория.
Мы описывали в нашем блоге кейс кафе «Цапа», которые создали бота в Facebook Messenger и повысили вовлеченность аудитории своей страницы и количество заказов на вынос. Вы можете позаимствовать логику этого бота и подогнать под свои цели и особенности заведения.
Примеры чат-ботов в Telegram
Я собрала реальные примеры применения чат-ботов в Telegram разными видами бизнеса.
Чат-бот шоумена и ведущего мероприятий
Илья Сорокин, ведущий мероприятий, шоумен и конферансье, решил рассказать и показать свою работу через бот в Telegram. Здесь бот исполняет роль портфолио, дает возможность оставить заявку и собирает все каналы связи с Ильей воедино — потенциальный клиент выберет для себя подходящий.
Бот в Телеграме шоумена и ведущего мероприятийЧат-бот психолога
Психолог, автор программ по подготовке к родам, Юлия Романенко, создала онлайн-помощника Джулию. С помощью нее можно узнать о распространенных страхах будущих мам, стоимость курсов, выбрать подходящий для себя и записаться на него.
Бот дает много полезной информации уже на старте общения, чем и располагает к себе.
Чат-бот Джулия — онлайн-помощник психологаРассылка обновлений от новостного портала
Новостной сайт «Коммерсантъ» использует бота в Телеграме, чтобы подписать читателей на рассылку новостей. При этом вы можете выбрать, как часто и в какое время получать обновления. Если нужно найти новости на сайте прямо сейчас, просто введите ключевое слово и бот предложит вам подборку новостей на эту тему. Чат-бот издания «Коммерсантъ»Чат-бот страховой компании
Украинское отделение страховой компании UNIQA тоже использует бота в Telegram. С помощью него вы можете узнать, какие документы нужны для оформления разных видов страховки: медицинская, на автомобиль и туристическая. Он также помогает оформить страховой случай и связаться с оператором по каждому из указанных разделов.
Чат-бот страховой компанииОткройте для себя чат-бота
Выстраивайте автоворонки продаж и отвечайте на вопросы пользователей с помощью чат-бота в Facebook, VK и Telegram.
Создать чат-бота
Как в SendPulse создать бота в Telegram
Теперь расскажу подробно о функционале чат-ботов в Telegram на примере простого бота для выдуманной кулинарной школы Best Cook:
А вот схема этого чат-бота в визуальном редакторе SendPulse:
Схема бота в визуальном редактореЧтобы построить такую цепочку, вам нужно сначала создать своего бота в Telegram, а затем подключить его к SendPulse — с этого и начнем.
Создайте бота в Telegram
В поиске Telegram найдите @botfather и создайте своего бота с помощью команды «/newbot». На этом этапе вам нужно определиться с именем бота.
Вы получите ссылку на бота в Телеграме и цифровой токен доступа. Токен вам понадобится, чтобы подключить бота в аккаунте SendPulse.
Цифровой токен вашего бота, который нужно вставить в аккаунте SendPulseПодключите бота к вашему аккаунту в SendPulse
В аккаунте SendPulse выберите раздел «Чат-боты», вкладку «Управление ботами», где подключаются чат-боты для Telegram, Facebook Messenger и ВКонтакте. В строку Telegram введите цифровой токен, который вы получили при создании бота через @botfather и нажмите «Подключить».
Вставляем токен в разделе «Чат-боты» аккаунта SendPulseДля успешного подключения и тестирования вам нужно подписаться на собственного бота.
Подписываемся на собственного ботаПосле подключения все боты, которыми вы управляете, будут показаны в списке в разделе «Управление ботами». В нашем случае — это бот выдуманной кулинарной школы Cooking School.
Чат-бот в Telegram подключен к аккаунту SendPulseМы подключили чат-бота и на его примере создадим цепочку сообщений. Но вначале я покажу, как в SendPulse запускается отправка автоответов и цепочек сообщений.
Запуск автоответов и цепочек сообщений чат-бота
В сервисе чат-ботов SendPulse есть понятие «триггер» — это условие, по которому отправляется автоответ или запускается последовательная цепочка сообщений.
Вы можете использовать триггеры двух видов: предустановленные и те, что создаются вручную.
Предустановленные триггеры
В личном кабинете SendPulse перейдите во вкладку «Чат-боты», откройте ваш подключенный чат-бот в Telegram. В разделе «Структура бота» вы увидите такие триггеры: «Приветственная серия», «Стандартный ответ» и «После отписки».
Триггер «Приветственная серия»
Его удобно использовать для отправки приветственного сообщения после подписки и вы можете изменить его под себя.
Настройка приветственной серии после подписки на ботаВ приветственном сообщении рекомендуется рассказать, как отписаться от бота, если ваши сообщения окажутся пользователю не интересны. Для отписки от бота в блоке по умолчанию установлены стандартные команды «/unsubscribe» и «/stop». Этот текстовый блок вы можете редактировать или удалить.
Отправлять приветственное сообщение необязательно, но оно делает ваш чат-бот понятным для подписчика — сразу ясно, чем чат-бот может быть полезен и чего от него ожидать. На ваш выбор вы можете отключать данный триггер, но мы рекомендуем его оставить и придать боту человечное лицо, придумать персонажа-помощника, как на примере ниже.
Пример приветственного сообщения чат-ботаСтандартный автоответ, если бот не распознал фразу пользователя
Прописать цепочки на все запросы пользователя невозможно. Если человек напишет фразу с ключевым словом, для которого не настроен триггер, ему отправится сообщение по «Стандартному автоответу».Придумайте подходящее сообщение для такого случая. Оно должно быть универсальным и перенаправлять подписчика на другой канал связи с вами, чтобы он все-таки мог решить свой вопрос. Например, укажите в тексте сообщения номер телефона или добавьте ссылку на форму обратной связи.
Вы также можете перенаправить пользователя на чат с администратором, чтобы он самостоятельно связался с пользователем и решил проблему. В нашем чат-боте сделать это можно с помощью блока «Действие». Просто отметьте опцию «Открыть чат» в настройках блока, когда будете строить цепочку. Общение продолжится плавно, без оповещения пользователя, что чат переключили на администратора.
Пример цепочки для триггера «Стандартный ответ»Подробнее о блоке «Действие» и об остальных блоках цепочки автоответов в Telegram расскажем ниже.
Триггер «Отписка от бота»
Используется, чтобы отправить сообщение после ввода команды отписки. Он запускает автоответ с оповещением, что пользователь успешно отписался от чат-бота. В конструкторе ответ стандартный, но я изменила текст сообщения и добавила картинку.
Помните, что даже если человек решает отписаться, есть шанс его вернуть или, по крайней мере, оставить у него приятное воспоминание о вашем бренде с помощью трогательного сообщения.
Автоответ «Отписка от бота»Предустановленных триггеров недостаточно для полноценного взаимодействия с подписчиками, поэтому, в зависимости от ваших задач, нужно будет настроить еще ряд триггеров самостоятельно. Рассказываю, как это сделать.
Триггеры, которые создаются вручную
Чтобы создать условие, по которому запустится автоответ или цепочка сообщений, в разделе «Структура бота» нажмите «Создать триггер» и приступайте к его настройке.
Добавление триггера вручнуюВ системе существует два типа триггеров, которые вы можете настроить самостоятельно. Тип триггера определяет, по какому условию будет запускаться сообщение или цепочка: в ответ на подписку или на ключевое слово во фразе подписчика («Команда»).
Тип триггера «После подписки»
Запускает цепочку автоответов после подписки через интервал, который вы указываете в минутах, часах или днях.
Добавление триггера «После подписки»Этот тип триггера можно использовать вместо предустановленного триггера «Приветственная серия» и отправлять с его помощью приветственное сообщение.
Или же можете привязать к нему цепочку с сообщениями, которые познакомят пользователя с компанией, тарифами, программой лояльности и ассортиментом.
Тип триггера «Команда»
Реагирует на ключевые слова в сообщении подписчика и запускает нужную цепочку автоответов. Прописать ключевые слова можно в настройках триггера.
Обратите внимание, что прописывать нужно ключевые слова и словосочетания. Можно добавить несколько разных слов, по которым будет запускаться цепочка, например: «доставка», «отправка», «самовывоз», «получение».
Добавление триггера «Команда»Создали триггер — приступайте к созданию цепочки сообщений.
Как настроить цепочку автоответов в редакторе чат-бота
В визуальном редакторе цепочки автоответов строятся с помощью специальных блоков: «Сообщение», «Цепочка», «Действие» и «Пауза». Они расположены на панели слева.
Блоки, из которых строится цепочка автоответовДальше рассмотрим сам процесс построения цепочки.
Создаем цепочку
Выбираем триггер и нажимаем «Создать цепочку». Либо же к триггеру можно привязать цепочку, созданную ранее, если у вас уже имеются таковые.
Создание цепочки для выбранного триггераНастраиваем стартовый блок
Справа в окне редактора цепочки вводим сообщение, которое отправляется пользователю в ответ на выбранный триггер. В нашем примере сообщение отправится после того, как пользователь напишет слово «Привет».
Стартовый блок в визуальном редакторе чат-ботаВы можете отправить следующее сообщение только после того, как пользователь отреагировал на ваше предыдущее сообщение. Например, нажал на кнопку, которую нужно добавить в это сообщение. Рассмотрим, как добавить кнопку в редакторе.
Добавляем кнопку
Нажмите «Добавить кнопку» и введите текст кнопки. В нашем случае будет три кнопки: «Узнать о школе», «Мастер-классы», «Контакты менеджера».
Добавляем кнопки для дальнейшего развития цепочкиВ одно сообщение вы можете добавить до двенадцати кнопок. Текст кнопки вмещает 20 символов без пробелов. В кнопки можно добавлять ссылки.
К каждой из этих кнопок мы будем присоединять другие сообщения, чтобы развивать цепочку дальше.
Создаем следующее сообщение
Перетащите блок «Сообщение» с левой панели в рабочую зону и соедините его с нужной кнопкой.
Для развития цепочки перетаскиваем блок «Сообщение» в рабочую зонуЗаполните сообщения текстом и, если нужно, добавьте другие элементы.
Какие элементы можно добавить в сообщение чат-бота в SendPulse:
- текст;
- эмодзи;
- изображение и вложение;
- кнопка со ссылкой или без;
- создать несколько реплик в одном сообщении, разделяя их задержкой до 5 секунд, чтобы текст не слипался;
- переменные из адресной книги;
- ввод данных пользователем, которые можно сохранить в уже существующую переменную или создать новую — для этого можно использовать кнопки быстрых ответов.
Чтобы добавить небольшую паузу между репликами в сообщении, воспользуйтесь элементом «Задержка». Укажите в редакторе, какая пауза будет между репликами — это до 5 секунд. Задержка в чате выглядит так:
Задержка между репликами в сообщенииВвод данных пользователя
Вы можете запросить у подписчиков ввод данных в виде текста, даты, номера телефона, email адреса или числа. Эти данные передаются в существующие переменные или в те, которые вы специально создадите. На случай, если данные ввели в неправильном формате и система их не распознала, вы можете настроить сообщение-подсказку для подписчика.
Чтобы исключить ошибки ввода для текстовых и числовых данных, есть возможность добавить быстрые ответы. Вы прописываете несколько вариантов, которые в сообщении выглядят как кнопки, а пользователь просто нажимает на нужный вариант.
Ввод данных пользователя через быстрые ответыПодробнее о том, как использовать ручной ввод данных в переменные, читайте в нашей базе знаний.
Дополнительные блоки для построения цепочки
В цепочку можно добавить еще три вида блоков.
Блок «Пауза»
Используется для задержки отправки следующего сообщения. Вы можете указать паузу от нескольких минут до одного дня.
Блок «Действие»
Для блока действие есть такие опции:
- «Открыть чат» — повышает приоритет чата: оповещает администратора о сообщении и открывает чат в панели SendPulse.
- «Отписать от бота» — если в какой-то ветке сценария бота нужно удалить клиента из списка подписчиков и больше не отправлять ему сообщения.
- «Добавить тег» — после нажатия на кнопку подписчику будет присвоен выбранный вами тег, с помощью которого вы сможете отправлять рассылки с сегментацией. О том, как использовать теги подробно читайте в базе знаний.
- «Установить переменную» — система установит или обновит значение для выбранной вами переменной.
- «Отправить вебхук» — можно отправить POST запрос с данными подписчика на ваш URL. Это нужно, чтобы, к примеру, отправить данные о подписчике и о том, что он прошел по какой-то ветке бота, в свою CRM. Подробнее о вебхуках читайте в нашей базе знаний.
Блок «Цепочка»
Внутри каждой цепочки можно перенаправить пользователя в другую цепочку, чтобы не дублировать последовательности блоков.
Блок «Цепочка»Дополнительные возможности сервиса чат-ботов SendPulse
В сервисе чат-ботов SendPulse вы можете настроить виджет подписки для сайта, сегментировать получателей рассылки, присваивая им теги или переменные, просматривать статистику по своим ботам, сохранять цепочки, чтобы затем к ним возвращаться. Дальше обо всем подробно.
Сегментация при рассылке
На этапе отправки рассылки доступна сегментация подписчиков по датам подписки, активности, тегам и переменным, по попаданию подписчика в цепочку или получению рассылки.
Сегментация списка при отправке рассылкиКроме текста в сообщение вы можете добавлять кнопки со ссылками, изображения и файлы.
Статистика
Чтобы узнать, сколько новых подписчиков бота появилось за месяц, общее количество подписчиков и количество отправленных сообщений, откройте вкладку «Статистика».
Статистика чат-ботаСохраненные цепочки
Если ранее вы создали цепочку для триггера, а потом отвязали ее, то она не будет удалена. Она попадет в раздел «Сохраненные цепочки». Вы сможете привязывать ее к уже существующему триггеру.
Виджет подписки
Во вкладке «Виджеты подписки» настраивайте виджет для сайта сразу с тремя кнопками — для VK и Facebook Messenger и Telegram, если у вас есть аккаунты в этих трех маркетинговых каналах. Если такой необходимости нет, выбирайте только одну кнопку.
Виджет подписки на рассылки в Telegram, VK и в Facebook MessengerЛайв-чат
В сервисе чат-ботов от SendPulse вы можете управлять чатами с подписчиками своих чат-ботов в Telegram, сообществ ВКонтакте и Facebook страниц через общий список лайв-чатов.
Общий список лайв-чатов Telegram, ВКонтакте и Facebook MessengerЗаключение
Надеюсь, что этот материал был полезен и вы убедились, что чат-боты в Telegram использовать для бизнеса не просто можно, но и нужно, и что вы разобрались, как построить чат-бота в SendPulse. Не забывайте, что у нас есть еще и чат-боты в Facebook Messenger и ВКонтакте. Если вы представлены на всех трех каналах, это прекрасная возможность работать со всеми подписчиками на одной маркетинговой платформе.
А чтобы лучше разобраться в теме чат-ботов, вы можете прочитать выжимку из онлайн-конференции SendPulse о чат-ботах и мессенджер-маркетинге. Также вам будет полезен Телеграм-канал «Чат-боты и мессенджер-маркетинг»
Мы и дальше работаем над развитием сервиса и уже очень скоро вас порадуем новым функционалом — следите за новостями и автоматизируйте маркетинг в SendPulse.
[Всего: 9 Средний: 5/5]Как создать телеграм-бота | База знаний Selectel
С помощью ботов можно упростить себе задачу коммуникации с пользователями, создав для них умного помощника. Боты понимают текстовые команды и могут обращаться к API вашего вебсайта, сервиса или быть самостоятельным продуктом с уникальными услугами.
Обычно, для создания бота требуется сервер, но в этой статье мы разберём подход, позволяющий обойтись без него. Он идеален при резких колебаниях количества запросов и прекрасно выдерживает пиковые нагрузки.
Настроить Телеграм-бота на Облачных функциях, используя официальный API и заготовленный нами пример, можно в 3 этапа:
- Запрограммировать логику работы Телеграм-бота.
- Зарегистрировать нового бота в Telegram.
- Связать бота и его логику воедино.
Запрограммировать логику работы Телеграм-бота
Чтобы упростить задачу, мы написали пример такого бота. Его исходный код доступен по ссылке github.com/selectel/cloud-telegram-bot. Он понимает команды:
/start
с приветственным сообщением;/sticker
с ответом в виде стикера;/getwebhook
чтобы вы могли получить информацию о настройках вашего бота;/setwebhook
для настройки вашего бота, но об этом позже.
Пройдите следующие шаги с нашим примером бота, чтобы освоиться:
- Скачайте исходный код как архив («Clone or download» → «Download ZIP») и распакуйте его.
- Внутри должно быть:
- «setup.py» с минимальным кодом, чтобы Python-окружение приняло содержимое папки за модуль для установки;
- «requirements.txt» с описанием зависимостей;
- «bot» — папка с исходным кодом нашего бота.
- Выделите все эти файлы и папки, а затем создайте из них новый ZIP-архив, тогда исходный код внутри архива не будет иметь лишних папок (как в случае с архивом, скачанным с github).
- Перейдите в Облачная Платформа → Функции → Создать функцию, подробнее.
- Задайте имя, например, «Bot».
- Загрузите ZIP-файл в качестве Исполняемого кода.
- Укажите Путь к файлу в архиве как «/bot/tele_bot.py».
- Укажите Вызываемую функцию в коде как «main».
- Добавьте переменную окружения «TOKEN», но пока не задавайте для неё значения, мы коснёмся этого на следующем этапе.
- Нажмите кнопку Сохранить и развернуть.
- Поставьте галочку, что нужна Публичная ссылка.
Теперь у нас есть API, реализующее логику ответов бота. Следующим этапом мы зарегистрируем его в Telegram.
Зарегистрировать нового бота в Telegram
Чтобы Telegram знал о существовании нашего бота, его нужно зарегистрировать. Для этого существует только один способ:
- Найдите бота @BotFather в Телеграм. Это официальный бот, созданный специально для управления ботами.
Отправьте ему команду:
/newbot
@BotFather спросит вас, как вы назовёте вашего бота. Следующим сообщением отправьте его название, заканчивающееся на «_bot».
Запишите полученный токен от @BotFather — это ключ для работы с Telegram API.
Теперь у нас API, регистрация бота в Telegram и его токен. Осталось связать это вместе.
Как связать бота и его логику воедино?
На этом этапе надо сделать так, чтобы бот знал токен пользователя, а Telegram знал, где его API:
- Найдите переменную окружения «TOKEN» в настройках функции. Мы оставили её пустой на первом этапе.
- Укажите в этой переменной токен вашего бота, который получили от @BotFather.
- Нажмите Сохранить и развернуть.
Далее нужно направить сообщения, которые пользователи отправляют в Telegram, нашему боту — в то API, которое для него создали.
Способ 1. Через бота @SelectelServerless_bot
- Найдите бота @SelectelServerless_bot в Телеграме.
Введите команду:
/setwebhook <Токен от вашего бота> <URL от облачной функции>
Бот ответит тем, что получит из Telegram API. Если всё хорошо, это будет «true».
Чтобы удостовериться в том, что всё корректно, отправьте команду:
/getwebhook <Токен от вашего бота>
В ответ должна прийти информация о webhook, в том числе указанный вами URL.
Способ 2. Из заготовленной формы
Откройте форму (или скопируйте её к себе в Облачное хранилище). Вставьте токен от вашего бота в первое поле, URL облачной функции во второе и нажмите на кнопку «Set Webhook». Произойдёт обращение к api.telegram.org, и вы увидите результат.
Примечание: может понадобиться наличие VPN.
Итог
Готов для работы бот, доступный в Телеграме, отвечающий на команды и способный автоматически масштабироваться под нагрузкой и без сервера.
Как создавать ботов в Telegram / Хабр
24 июня разработчики Telegram
открылиплатформу для создания ботов. Новость кого-то обошла стороной Хабр, однако многие уже начали разрабатывать викторины. При этом мало где указаны хоть какие-то примеры работающих ботов.
Прежде всего, бот для Telegram — это по-прежнему приложение, запущенное на вашей стороне и осуществляющее запросы к
Telegram Bot API. Причем API довольное простое — бот обращается на определенный URL с параметрами, а Telegram отвечает JSON объектом.
Рассмотрим API на примере создания тривиального бота:
1. Регистрация
Прежде чем начинать разработку, бота необходимо зарегистрировать и получить его уникальный id, являющийся одновременно и токеном. Для этого в Telegram существует специальный бот —
@BotFather.
Пишем ему /start и получаем список всех его команд.
Первая и главная — /newbot — отправляем ему и бот просит придумать имя нашему новому боту. Единственное ограничение на имя — оно должно оканчиваться на «bot». В случае успеха BotFather возвращает токен бота и ссылку для быстрого добавления бота в контакты, иначе придется поломать голову над именем.
Для начала работы этого уже достаточно. Особо педантичные могут уже здесь присвоить боту аватар, описание и приветственное сообщение.
Не забудьте проверить полученный токен с помощью ссылки api.telegram.org/bot<TOKEN>/getMe, говорят, не всегда работает с первого раза.
2. Программирование
Создавать бота буду на Python3, однако благодаря адекватности этого языка алгоритмы легко переносятся на любой другой.
Telegram позволяет не делать выгрузку сообщений вручную, а поставить webHook, и тогда они сами будут присылать каждое сообщение. Для Python, чтобы не заморачиваться с cgi и потоками, удобно использовать какой-нибудь реактор, поэтому я для реализации выбрал tornado.web. (для GAE удобно использовать связку Python2+Flask)
Каркас бота:
URL = "https://api.telegram.org/bot%s/" % BOT_TOKEN
MyURL = "https://example.com/hook"
api = requests.Session()
application = tornado.web.Application([
(r"/", Handler),
])
if __name__ == '__main__':
signal.signal(signal.SIGTERM, signal_term_handler)
try:
set_hook = api.get(URL + "setWebhook?url=%s" % MyURL)
if set_hook.status_code != 200:
logging.error("Can't set hook: %s. Quit." % set_hook.text)
exit(1)
application.listen(8888)
tornado.ioloop.IOLoop.current().start()
except KeyboardInterrupt:
signal_term_handler(signal.SIGTERM, None)
Здесь мы при запуске бота устанавливаем вебхук на наш адрес и отлавливаем сигнал выхода, чтобы вернуть поведение с ручной выгрузкой событий.
Приложение торнадо для обработки запросов принимает класс tornado.web.RequestHandler, в котором и будет логика бота.
class Handler(tornado.web.RequestHandler):
def post(self):
try:
logging.debug("Got request: %s" % self.request.body)
update = tornado.escape.json_decode(self.request.body)
message = update['message']
text = message.get('text')
if text:
logging.info("MESSAGE\t%s\t%s" % (message['chat']['id'], text))
if text[0] == '/':
command, *arguments = text.split(" ", 1)
response = CMD.get(command, not_found)(arguments, message)
logging.info("REPLY\t%s\t%s" % (message['chat']['id'], response))
send_reply(response)
except Exception as e:
logging.warning(str(e))
Здесь CMD — словарь доступных команд, а send_reply — функция отправки ответа, которая на вход принимает уже сформированный объект
Message.
Собственно, её код довольно прост:
def send_reply(response):
if 'text' in response:
api.post(URL + "sendMessage", data=response)
Теперь, когда вся логика бота описана можно начать придумывать ему команды.
3. Команды
Перво-наперво, необходимо соблюсти соглашение Telegram и научить бота двум командам: /start и /help:
def help_message(arguments, message):
response = {'chat_id': message['chat']['id']}
result = ["Hey, %s!" % message["from"].get("first_name"),
"\rI can accept only these commands:"]
for command in CMD:
result.append(command)
response['text'] = "\n\t".join(result)
return response
Структура message[‘from’] — это объект типа User, она предоставляет боту информацию как id пользователя, так и его имя. Для ответов же полезнее использовать message[‘chat’][‘id’] — в случае личного общения там будет User, а в случае чата — id чата. В противном случае можно получить ситуацию, когда пользователь пишет в чат, а бот отвечает в личку.
Команда /start без параметров предназначена для вывода информации о боте, а с параметрами — для идентификации. Полезно её использовать для действий, требующих авторизации.
После этого можно добавить какую-нибудь свою команду, например, /base64:
def base64_decode(arguments, message):
response = {'chat_id': message['chat']['id']}
try:
response['text'] = b64decode(" ".join(arguments).encode("utf8"))
except:
response['text'] = "Can't decode it"
finally:
return response
Для пользователей мобильного Telegram, будет полезно сказать @BotFather, какие команды принимает наш бот: I: /setcommands
BotFather : Choose a bot to change the list of commands.
I: @******_bot
BotFather: OK. Send me a list of commands for your bot. Please use this format:
command1 — Description
command2 — Another description
I:
whoisyourdaddy — Information about author
base64 — Base64 decode
BotFather: Success! Command list updated. /help
C таким описанием, если пользователь наберет /, Telegram услужливо покажет список всех доступных команд.
4. Свобода
Как можно было заметить, Telegram присылает сообщение целиком, а не разбитое, и ограничение на то, что команды начинаются со слеша — только для удобства мобильных пользователей. Благодаря этому можно научить бота немного говорить по-человечески.
UPD: Как верно подсказали, такое пройдет только при личном общении. В чатах боту доставляются только сообщения, начинающиеся с команды (/<command>) (https://core.telegram.org/bots#privacy-mode)
- All messages that start with a slash ‘/’ (see Commands above)
- Messages that mention the bot by username
- Replies to the bot’s own messages
- Service messages (people added or removed from the group, etc.)
Чтобы бот получал все сообщения в группах пишем @BotFather команду /setprivacy и выключаем приватность.
Для начала в Handler добавляем обработчик:
if text[0] == '/':
...
else:
response = CMD["<speech>"](message)
logging.info("REPLY\t%s\t%s" % (message['chat']['id'], response))
send_reply(response)
А потом в список команд добавляем псевдо-речь:
RESPONSES = {
"Hello": ["Hi there!", "Hi!", "Welcome!", "Hello, {name}!"],
"Hi there": ["Hello!", "Hello, {name}!", "Hi!", "Welcome!"],
"Hi!": ["Hi there!", "Hello, {name}!", "Welcome!", "Hello!"],
"Welcome": ["Hi there!", "Hi!", "Hello!", "Hello, {name}!",],
}
def human_response(message):
leven = fuzzywuzzy.process.extract(message.get("text", ""), RESPONSES.keys(), limit=1)[0]
response = {'chat_id': message['chat']['id']}
if leven[1] < 75:
response['text'] = "I can not understand you"
else:
response['text'] = random.choice(RESPONSES.get(leven[0])).format_map(
{'name': message["from"].get("first_name", "")}
)
return response
Здесь эмпирическая константа 75 относительно неплохо отражает вероятность того, что пользователь всё-таки хотел сказать. А format_map — удобна для одинакового описания строк как требующих подстановки, так и без нее. Теперь бот будет отвечать на приветствия и иногда даже обращаться по имени.
5. Не текст.
Боты, как и любой нормальный пользователь Telegram, могут не только писать сообщения, но и делиться картинками, музыкой, стикерами.
Для примера расширим словарь RESPONSES:
RESPONSES["What time is it?"] = ["<at_sticker>", "{date} UTC"]
И будем отлавливать текст :
if response['text'] == "<at_sticker>":
response['sticker'] = "BQADAgADeAcAAlOx9wOjY2jpAAHq9DUC"
del response['text']
Видно, что теперь структура Message уже не содержит текст, поэтому необходимо модифицировать send_reply:
def send_reply(response):
if 'sticker' in response:
api.post(URL + "sendSticker", data=response)
elif 'text' in response:
api.post(URL + "sendMessage", data=response)
И все, теперь бот будет время от времени присылать стикер вместо времени:
6. Возможности
Благодаря удобству API и быстрому старту боты Telegram могут стать хорошей платформой для автоматизации своих действий, настройки уведомлений, создания викторин и task-based соревнований (CTF, DozoR и прочие).
Вспоминая статью про умный дом, могу сказать, что теперь извращений меньше, а работа прозрачнее.
7. Ограничения
К сожалению, на данный момент существует ограничение на использование webHook — он работает только по https и только с валидным сертификатом, что, например для меня пока критично за счет отсутствия поддержки сертифицирующими центрами динамических днс.
К счастью, Telegram также умеет работать и по ручному обновлению, поэтому не меняя кода можно создать еще одну службу Puller, которая будет выкачивать их и слать на локальный адрес:
while True:
r = requests.get(URL + "?offset=%s" % (last + 1))
if r.status_code == 200:
for message in r.json()["result"]:
last = int(message["update_id"])
requests.post("http://localhost:8888/",
data=json.dumps(message),
headers={'Content-type': 'application/json',
'Accept': 'text/plain'}
)
else:
logging.warning("FAIL " + r.text)
time.sleep(3)
P.S. По пункту 7 нашел удобное решение — размещение бота не у себя, а на heroku, благо все имена вида *.herokuapp.com защищены их собственным сертификатом.
UPD: Telegram улучшили Бот Апи, из-за чего, теперь не обязательно иметь отдельную функцию для отправки сообщений при установленном вебхуке, а в ответ на POST запрос можно отвечать тем же сформированным JSON с ответным сообщением, где одно из полей устанавливается как ч ‘method’: ‘sendMessage’ (или любой другой метод, используемый ботом).
Документация 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 — Удалить бота и его имя пользователя.
Пожалуйста, имейте в виду, что для применения настроек на сервере, возможно, потребуется некоторое время.
Подключение Telegram | База знаний BotHelp
Открыть статью в новом окне ↗
Вы можете подключить Telegram бота к Bothelp. После подключения вы сможете отвечать на сообщения подписчиков боту, отправлять рассылки и создавать автоворонки. Подробнее о возможностях платформы, читайте в статье: Возможности Bothelp.
Шаг 1. Создать бота
Если у вас уже есть созданный бот, переходите сразу ко второму шагу. Если нет, воспользуйтесь инструкцией ниже.
Как создать бота?
1. Зайдите в свой аккаунт Телеграм.
Обратите внимание, что владельцем бота будет тот, с чьего аккаунта он был создан. Если вы утратите доступ к аккаунту с которого создавался бот или он будет удален, то вы не сможете вернуть подписчиков.
2. Найдите в поиске аккаунт @BotFather и начните с ним диалог.
3. Введите команду «/newbot».
Создание нового бота
Имя может быть любым. Оно будет отображаться в списке контактов и в диалоге.
Ник обязательно должен заканчиваться на bot. Например: mybot, newbot, qwertybot. Ник уникальный и некоторые ники уже заняты, так что подбирайте до тех пор пока не найдется свободное. Лучше всего использовать название компании или вашу фамилию.
Длинна ника 5 до 32 символов, можно использовать только латинские буквы, цифры и нижнее подчеркивание.
После успешного создания вы увидите следующее сообщение:
Позже вы сможете добавить аватар, описание и другую информацию о боте.
Шаг 2. Скопировать токен
После создания вы увидите следующую надпись:
Это токен (секретный ключ) бота, он используется для доступа к боту через API и подключения к платформе BotHelp. Кликните на токен и он будет скопирован в буфер обмена.
Шаг 3. Подключение к Bothelp
Нажмите на кнопку «Добавить новый канал»
Выберите Telegram в списке доступных каналов
Введите в поле токен вашего бота Telegram
Нажмите «Добавить канал»
Новый канал отобразится в списке подключенных, теперь вы можете настроить цепочку сообщений бота. Для этого воспользуйтесь инструкцией: «Создаем сценарий бота».
Настройка бота
Если вы хотите изменить аватар или описание бота вернитесь назад в Телеграм в аккаунт Botfather.
Введите команду /mybots чтобы выбрать нужного бота.
Выберите Edit bot, чтобы перейти к его редактированию.
Настройки
Edit Botpic — позволит загрузить файл с аватаркой для бота
Edit Description — позволит добавить описание (до 512 символов). Описание будет отображаться когда пользователи зайдут в диалог с ботом в окне «Что может этот бот?»
Edit About — позволит отредактировать описание в профиле бота
После внесения любых изменений канал нужно переподключить в кабинете платформы.
Шаг 4. Тестирование
После подключения перейдите в диалог с ботом и напишите любое сообщение. Оно должно отобразится в диалогах внутри платформы BotHelp.
Протестировать бота с компьютера можно при помощи приложения .
Видеоинструкция:
_______
Если у вас остались вопросы, задайте их в чате техподдержки. Мы всегда готовы помочь 😃
Как сделать чат-бота за 15 минут — CASES
В условиях современного рынка существует множество трендов и тенденций. Некоторые из них молниеносно появляются и также быстро исчезают, а некоторые задерживаются и укореняются на более долгое время.
Одним из таких трендов являются чат-боты. Но так как тема эта довольно сложная, сегодняшняя ситуация примерно похожа на ситуацию с SMM продвижением — все хотят, но не понимают зачем, как и сколько это должно стоить.
В этой статье мы расскажем что такое чат-боты, зачем они нужны, как создать чат-бота без навыков программирования и покажем как можно применить бота в маркетинге.
Что такое чат-бот
Чат-бот — так называемый, искусственный интеллект, специальная программа, которая может общаться с пользователями вашего сайта или страницы в социальных сетях, а точнее отправлять им различные сообщения в заданной предварительно последовательности.
Разработка чат-бота производиться с участием программиста и без него. Первый вариант — самый простой, о котором мы поговорим в этой статье реализуется при помощи специальных программ — конструкторов. Они бывают платные и бесплатные, все зависит от необходимого вам функционала. Второй вариант сложнее, дороже, но стоит отметить что чат-бот, написанный программистом, всегда «умнее», чем созданный через конструктор.
Зачем нужен чат-бот
Сегодня вы можете найти 1 000 000 советов о том, как написать чат-бота, в какой программе это лучше сделать, как найти подходящий сервис, но мало кто пишет о том, какие цели стоит ставить перед чат-ботом. А зря, от этого ведь зависит рациональность инвестирования времени и средств в разработку, а также результат маркетинговых активностей.
Целью создания чат-бота может быть:
- Автоматизация работы службы поддержки.
- Разгрузка колл-центра и ответственных менеджеров.
- Построение воронки продаж.
- Привлечение и получение лидов.
Как создать чат-бота бесплатно
Все понимают, что бот — это программа. Чтобы создать программу, нужен программист. Чтобы привлечь программиста, нужны средства. Но что делать, если чат-бот необходим, а денег на программиста просто нет.
Мы знаем как вам помочь. В этой части статьи мы расскажем как создать чат-бота бесплатно.
Рецепт прост как 2х2. Вам нужен конструктор ботов.
Конструктор ботов — это специальный сервис, в функционал которого, заложены определенные простые функции и последовательности действий, которые сможет выполнять ваш чат-бот. Все что вам нужно будет сделать, так это внести информацию о своей компании, кастомизировать внешний вид сообщений и продумать необходимые сценарии, по которым робот будет давать ответы на вопросы.
Зачастую, этих возможностей хватает с головой, чтобы закрыть потребности малого и среднего бизнеса.
Для того, чтобы внести еще большую ясность, мы составили таблицу, в которой наглядно показали плюсы и минусы создания чат-ботов с привлечением программистов и без них.
Таблица — Преимущества и недостатки создания чат-бота через конструктор ботов и при помощи программиста.
Вывод
Если у вас есть время и средства — подключайте программиста. Если времени и средств особо нет, читайте нашу статью и подключайте чат-бота самостоятельно.
Как сделать чат-бота, если не умеешь программировать
Отвечаем на главный вопрос, который интересует большинство из зашедших на эту страницу пользователей: как создать чат-бота, если не умеешь программировать и при виде кода впадаешь в панику?
Как вы уже поняли, нужен конструктор ботов. Но, если вы введете в Google запрос «какой конструктор ботов выбрать» — в ответ получите 1К ссылок, с самыми разнообразными по функционалу и возможностям конструкторами.
DON’T PANIC!
Мы немножко познакомим вас с темой и подскажем как получить то, что нужно именно вам.
Во-первых, отметим, что создание чат-бота нужно для общения через мессенджеры. Самые распространенные мессенджеры, которые используются для таких целей это:
- Facebook messenger
- Telegram
- Viber
Начнем по порядку.
Чат-бот Фейсбук
Это, пожалуй, самая популярная тема, волнующая большую половину пользователей. Для начала, давайте проведем оценку рынка.
5 сервисов для создания ботов без кодинга и без денег
1) ChattyPeople
Как утверждает Рэмптон, лучший сервис для создания чат-ботов. Простой, удобный, бесплатный.
2) Botsify
3) Chatfuel
Достаточно простой в освоении и использовании сервис для создания чат-ботов. Наша команда опробовала его и мнения разошлись 50/50. Да, сервис прост, но прост настолько, что значительно уступает тому же Many Chats по функционалу и отчетности. Но это дела каждого. Безусловно достоин внимания.
4) FlowXO
5) BeepBoop
Из личного опыта:
Мы тестировали несколько сервисов для создания чат-ботов и можем с уверенностью отдать предпочтение платформе ManyChat.
Почему ManyChat:
- Простой и интуитивно понятный интерфейс, несмотря на то, что он англоязычный.
- Широкие возможности аналитики внутри самого сервиса.
- Возможность добавлять виджеты на сайт.
- Совместимость с Facebook.
- Широкий функционал в бесплатной версии.
- Адекватная стоимость платной подписки.
- Наличие подробной справки и обучающего видео и текстового материала.
Как создать чат-бота при помощи сервиса ManyChat. Полная инструкция
Шаг 1. Регистрация
- заходим на сайт сервиса и кликаем Get Started Free
- Попадаем на окно авторизации через Facebook
- Кликаем Sign In With Facebook
- Устанавливаем галочку на пункте I agree to Many Chat’s Terms of Service and Private Policy
- Кликаем Sign In With Facebook
- Вводим логин и пароль от вашего аккаунта в Facebook (если вход не произошел автоматически)
На следующем экране выбираем какие именно страницы вы хотите подключить к Many Chats
Далее, загрузится основной экран с синим осьминогом, на котором ваш необходимо согласиться или отказаться от получения рассылки от сервиса и нажать кнопку Get Started.
После этого, попадаем в дашборд. Это такой себе командный пункт из которого вы будете управлять своим чат-ботом.
Шаг 2. Приветственное сообщение
Для начала поздороваемся.
Первое, что увидит пользователь, который собрался написать вам сообщение и вошедший в Facebook Messenger — кнопка Get Started внизу экрана мессенджера. Кликнув на нее, пользователь получит первое приветственное сообщение.
Как настроить Welcome Message в ManyChats
- В левом меню кликаем по кнопке Automation
- В выпадающем меню находим пункт Welcome Message и кликаем по нему
- Далее кликаем по сообщению и пишем приветственное сообщение
Шаг 3. Ответ на непонятный вопрос
Этот ответ отправляется ботом автоматически, если он не понимает что нужно ответить на заданный вопрос.
Как настроить Default Reply в ManyChats
- В левом меню кликаем по кнопке Automation
- В выпадающем меню находим пункт Default Reply и кликаем по нему
- Далее кликаем по сообщению и редактируем сообщение
Шаг 4. Ключевые слова
Ключевые слова — это особые сигналы для бота. Чтобы было понятно, приведем пример: если вы отправите слово «start» нашему чат-боту, он подпишет вас на рассылку и вы увидите приветственное сообщение подтверждения подписки.
Остальные сигналы (ключевые слова) работают аналогично: задается ключевое слово и к нему привязывается определенное действие. Если максимально все упростить, то можно провести аналогию с сигналами светофора:
- ключевое слово: красный — действие бота: стоп
- ключевое слово: желтый — действие бота: приготовься
- ключевое слово: зеленый — действие бота: начинай движение
Шаг 5. Статистическое меню в Messenger
Это то меню, которое видит пользователь при входе в диалог с вами в Messenger. Вот, как оно выглядит:
Это меню — важный момент, которому стоит уделить внимание. Сюда нужно вынести кратко главную информацию, которую вы хотите сообщить пользователю и добавить призывов к действию.
В бесплатной версии, вам будет доступно 2 пункта для вывода. Как вариант, можно вывести такие:
- адрес вашего сайта
- СТА для совершения действия, например, личной консультации
Как настроить главное меню в ManyChats
- Заходим в дашборд, пункт Automation
- Переходим в пункт Main Menu
Лайфхак: да, у вас есть всего лишь 2 пункта в бесплатной версии, но в каждом из этих пунктов, можно сделать несколько подпунктов. Таким образом, количество информации, которую вы можете показать пользователю увеличивается.
Шаг 6. Отправка широковещательных сообщений
Вы набрали подписчиков бота, что дальше? С ними нужно как-то работать, напоминать о себе, делать предложения. Для этого, нам понадобятся Broadcasts или другими словами автоматизированную отправку сообщений или автопостинг.
Для этого:
- зайдите в дашборд
- в левом меню найдите пункт Broadcasting и кликните по нему
- в выпадающем меню кликните по пункту Broadcasts
Теперь, чтобы создать сообщение, нажмите на кнопку +New Broadcast
Создайте свое первое сообщение и кликайте Go Next, чтобы продолжить и Preview, чтобы посмотреть что получилось.
Как перенаправить трафик в Messenger
Настройка стала +/- ясно/понятно. Но вот главный вопрос — где взять подписчиков для бота? Для этого ManyChats располагает отличным инструментом, который называется Growth Tools.
Познакомимся с ним поближе
- заходим в дашборд
- в левом меню находим пункт Growth Tools и кликаем на него
- далее, в правом верхнем углу жмем кнопку New Growth Tools и попадаем в меню редактирования нового инструмента роста
Telegram чат бот — легкий способ сделать бота
Чат бот telegram интересный и эффективный инструмент.
Инструкция: Как сделать чат-бота Telegram без кодинга
Подготовительные работы:
- Устанавливаем приложение Telegram. Ссылка на скачивание: ссылка
- Регистрируемся в приложении
Для легкого и быстрого создания бота, мы будем использовать сервис Manybot.
Создаем бота:
Переходим на manybot.io
Кликаем кнопку «Создать бота»:
Далее, кликаем: Открыть ManyBot в Telegram:
Если вы работаете с десктопа, откроется окно переадресации в приложение Telegram, в котором нужно нажать «Открыть».
Открываем Telegram и кликаем кнопку «Добавить нового бота» в меню Manybot:
Следуя инструкции, переходим к @BotFather. Это «царь-бот» в Telegram. Любого нового бота, можно создать только обратившись к нему. Что мы собственно говоря и сделаем. Переходим к @BotFather:
Видим приветственное сообщение. Для начала работ, отправляем боту команду /start, в ответ бот пришлет с описанием своих функций и команд, которыми вы можете эти функции вызвать.
Сообщаем @BotFather о том, что хотим создать нового бота командой /newbot:
Дальше, @BotFather спросит как вы хотите назвать своего бота. Мы назовем его TestBot.
Теперь, даем боту юзернейм, по которому вы сможете найти бота в поиске:
Бот создан. Теперь нужно скопировать токен для дальнейших действий:
Возвращаемся в ManyBot и отправляем боту скопированный токен и жмем кнопку «Я скопировал токен»:
В ответ вы получите сообщение об успешном создании бота и просьбой немного о нем рассказать:
Этот шаг можно пропустить.
Чтобы люди могли подписаться на вашего бота и начать с ним общение, нужно выслать им ссылку на него из сообщения (см. скрин выше) или разместить ссылку на сайте, в Instagram и пр.
Дальнейшие действия зависят от задач, которые перед вами стоят. Если вам достаточно бота, ОК, берите ссылку и размещайте в местах, где ее смогут увидеть ваши потенциальные подписчики.
Если вы ведете канал в Telegram и хотите наладить постинг и добавить дополнительные возможности к своим постам, сделайте следующее.
Как добавить лайки и сделать отложенный постинг в Telegram-канал
Сделайте созданного бота админом вашего канала:
- зайдите в канал
- найдите пункт управления каналом (три вертикальные точки справа вверху)
- кликните по ним и в выпадающем меню выберите: управление каналом — администраторы — добавить администратора:
- далее, в поиске найдите вашего бота по юзернейму, который мы присваивали ранее и назначьте его админом:
- находим в Telegram специального бота, который называется @Controllerbot
- первое, что вы увидите — сообщение с описанием возможностей этого бота.
- даем боту команду /start
- далее, подключаем бота. Для этого копируем токен, полученный ранее в @Controllerbot:
- далее, подключаем канал:
- создаем пост. Для этого, кликните на кнопку «Создать новый пост». Вас автоматически переадресует в ваш созданный бот:
- отправляем непосредственно то, что хотим опубликовать:
- выбираем, что нужно добавить к посту (мы выбрали реакции):
- отправляем боту реакции, которые хотим прикрепить:
- кликаем кнопку «Далее» и выбираем необходимое действие:
- мы выбрали «Опубликовать». Вот, что получилось:
Как сделать опрос в Telegram
Для того, чтобы сделать опрос в Телеграм, находим бота @vote:
Выбираем опрос какого типа мы хотим создать: публичный или анонимный. Мы выбрали Public:
Отправляем вопросы, которые будут включены в наш опрос и варианты ответов:
По окончанию, отправляем боту сигнал о завершении настроек в виде команды /done
Еще один способ добавить реакции к посту
Telegram бот @like
В ответ, бот попросит выслать сообщение, к которому нужно прикрепить реакции:
После этого, нужно выслать реакции, которые вы хотите использовать (до 6 эмоджи):
Пост готов.
Несколько полезных команд для вашего бота:
Чтобы настроить меню Telegram, отправьте боту /commands
Чтобы посмотреть справку, отправьте боту /help
И так далее.
Как написать Telegram бота: практическое руководство
В последнее время Telegram у всех на слуху. Нужно отдать должное отделу маркетинга этого приложения, шумиху подняли на славу. Одной из основных «фишек» Telegram является его якобы защищённость — по словам Павла Дурова вся переписка между пользователями шифруется. Более того, ни одна спец.служба мира не будет иметь доступ к вашим сообщениям. Но в данной статье речь не об этом. Сегодня хотелось бы поговорить о не менее крутой фишке в Telegram, а именно о ботах. Помимо того, что в сети уже полно информации о различного рода Telegram ботах (github бот, например), мессенджер открыл своё API для разработчиков, и теперь каждый может создать своего собственного бота с блэкджеком и плюшками.
В статье я приведу пример написания онлайн бота с использованием Python и Django фреймворка. То есть мы «запилим» полноценное веб-приложение, которое будет крутиться на удалённом хосте и принимать команды от пользователей. Весь исходный текст доступен в моём github репозитории.
Документация, описывающая процесс взаимодействия с ботами Telegram находится тут. Чтобы не изобретать велосипед, я нашел неплохую Python библиотеку, реализующую все основные функции ботов — telepot. Как я уже упоминал ранее, для того, чтобы обслуживать пользователей нашего бота мы будет разрабатывать веб-приложение, используя Django фреймворк.
Как создать Telegram бота?
Для начала нам необходимо зарегистрировать в Telegram нашего будущего бота. Это делается следующим образом:
- Необходимо установить приложение Telegram на телефон или компьютер. Скачать приложение можно тут
- Добавляем к себе в контакт-лист бота с именем BotFather
- Запускаем процедуру «общения» с ботом нажатием кнопки Start. Далее перед нами предстанет список команд точно как на скриншоте.
- Для того, чтобы создать нового бота необходимо выполнить команду /newbot и следовать инструкциям. Обратите внимание, что username для бота должен всегда содержать в конце слово bot. Например, DjangoBot или Django_bot.
- Для нашего бота я выбрал имя PythonPlanetBot, так как его основная функция заключается в парсинге RSS feed сайта Python Planet и выдача информации о последних постах пользователю 🙂
После создания бота, обратите внимание на строку с текстом:
Use this token to access the HTTP API:
За которой следует т.н. token по которому мы будем манипулировать нашим ботом. Помимо функции создания telegram бота, BotFather также имеет ряд других возможностей:
- Присвоить боту описание
- Установить аватар
- Поменять token
и так далее. Полное описание доступных команд можно увидеть на первом скриншоте.
Приступаем к кодированию
Как я ранее уже упоминал, мы будем писать веб-приложение на Django. Но стоит отметить, что это делать необязательно. Можно обойтись и обычным Python скриптом, правда в этом случае необходимо будет периодически опрашивать Telegram на предмет новых запросов от пользователей бота (используя метод getUpdates) и увеличивая offset для получения самых последних данных без повторений. В Telegram существует два взаимоисключающих метода получения команд/сообщений для вашего бота.
- Использование вызова API метода getUpdates
- Установка Webhook
Установка Webhook заключается в передаче боту специального URL адреса на который будет поступать POST запрос каждый раз, когда кто-то начнёт посылать сообщения боту. Именно этот вариант мы и будем использовать для взаимодействия между ботом и его пользователем. Для того, чтобы задать URL, необходимо использовать API метод setWebhook. Отмечу, что URL должен начинаться с https, то есть иметь защищённое SSL соединение с валидным сертификатом. Telegram разрешает использовать самоподписанный сертификат, правда для этого необходимо в методе setWebhook передавать также публичный ключ в PEM формате (ASCII base64). Либо же можно получить валидный бесплатный SSL сертификат от Let’s Encrypt.
Подробнее о getUpdates и setWebhook можно почитать соответственно здесь и тут.
Итак, вернёмся к python библиотеке для работы с Telegram — telepot. На текущий момент самой последней её версий является 6.7. Устанавливаем её в виртуальное окружение python virtualenv:
pip install telepot
Самый простой вариант взаимодействия с Telegram ботом на Python выглядит следующим образом:
import telepot
token = '123456'
TelegramBot = telepot.Bot(token)
print TelegramBot.getMe()
Переменной token присваиваем значение токена, полученного при создании бота через BotFather. В итоге после выполнения этих команд мы получим:
{u'username': u'PythonPlanetBot', u'first_name': u'Python Planet Bot', u'id': 199266571}
Поздравляю! Мы вызывали самый простой API запрос getMe, который возвращает информацию о боте: username, id, first_name.
Добавим нашего бота к себе в контакт-лист и пошлём ему первую стандартную команду /start
Выполняем код:
TelegramBot.getUpdates()
[{u'message': {u'date': 1459927254, u'text': u'/start', u'from': {u'username': u'adilkhash', u'first_name': u'Adil', u'id': 31337}, u'message_id': 1, u'chat': {u'username': u'adilkhash', u'first_name': u'Adil', u'type': u'private', u'id': 7350}}, u'update_id': 649179764}]
Процесс общения с telegram ботом происходит по HTTPS; для передачи данных используется JSON. Метод getUpdates возвращает список/массив из объектов типа Update. Внутри Update находится объект Message. Для стандартного взаимодействия с ботом нас фактически интересует именно объект Message, у которого мы считываем атрибут text, хранящий в себе текст, переданный боту и объект chat, в котором лежит информация о пользователе, инициировавшем общение с нашим Telegram ботом. Также имеется параметр update_id, который служит в качестве offset параметра при вызове метода getUpdates. То есть update_id+1 вернёт все сообщения, поступившие после последнего update_id, при этом все предыдущие сообщения будут удалены.
TelegramBot.getUpdates(649179764+1)
[{u'message': {u'date': 1459928527, u'text': u'hello bro', u'from': {u'username': u'adilkhash', u'first_name': u'Adil', u'id': 31337}, u'message_id': 13, u'chat': {u'username': u'adilkhash', u'first_name': u'Adil', u'type': u'private', u'id': 7350}}, u'update_id': 649179765}]
На этапе написания простейшего Telegram бота нам этих вызовов достаточно. Приступим к написанию Django приложения для обслуживания наших пользователей.
Простая функция парсинга RSS фида Planet Python выглядит вот так:
# -*- coding: utf8 -*-
from xml.etree import cElementTree
import requests
def parse_planetpy_rss():
"""Parses first 10 items from http://planetpython.org/rss20.xml
"""
response = requests.get('http://planetpython.org/rss20.xml')
parsed_xml = cElementTree.fromstring(response.content)
items = []
for node in parsed_xml.iter():
if node.tag == 'item':
item = {}
for item_node in list(node):
if item_node.tag == 'title':
item['title'] = item_node.text
if item_node.tag == 'link':
item['link'] = item_node.text
items.append(item)
return items[:10]
Здесь я использую python библиотеку requests для работы с HTTP в самом простейшем варианте без обработки ошибок. Django «вьюшка» выглядит следующим образом:
TOKEN = '<Our_Bot_Token>'
TelegramBot = telepot.Bot(TOKEN)
def _display_help():
return render_to_string('help.md')
def _display_planetpy_feed():
return render_to_string('feed.md', {'items': parse_planetpy_rss()})
class CommandReceiveView(View):
def post(self, request, bot_token):
if bot_token != TOKEN:
return HttpResponseForbidden('Invalid token')
commands = {
'/start': _display_help,
'help': _display_help,
'feed': _display_planetpy_feed,
}
try:
payload = json.loads(request.body.decode('utf-8'))
except ValueError:
return HttpResponseBadRequest('Invalid request body')
else:
chat_id = payload['message']['chat']['id']
cmd = payload['message'].get('text') # command
func = commands.get(cmd.split()[0].lower())
if func:
TelegramBot.sendMessage(chat_id, func(), parse_mode='Markdown')
else:
TelegramBot.sendMessage(chat_id, 'I do not understand you, Sir!')
return JsonResponse({}, status=200)
@method_decorator(csrf_exempt)
def dispatch(self, request, *args, **kwargs):
return super(CommandReceiveView, self).dispatch(request, *args, **kwargs)
CommandReceiveView ждёт POST запрос на себя, парсит его и отвечает исходя из заданной команды. Полноценное Django приложение можно найти по этой ссылке. Стоит отметить в коде использование ещё одного API вызова — sendMessage. Этот метод отправляет сообщение заданному пользователю, используя при этом chat_id и сам текст сообщения. Chat_id — это уникальный идентификатор чата между пользователем и ботом (его идентификатор есть в ответе на запрос getUpdates). У Telegram ботов есть одно ограничение, они не могут посылать сообщения пользователям, которые предварительно не инициировали общение с ним. По-видимому это сделано дабы избежать массового создания спам-ботов.
Я предполагаю, что вы уже клонировали мой репозиторий, настроили окружение и установили все необходимые зависимости: Django, requests, telepot. Если же вы не знаете как это сделать, то совсем скоро я напишу цикл статей о разработке веб-приложений на Python, включая разбор экосистемы: разработка, настройка, деплой. Если вам это интересно, то отпишитесь, пожалуйста, в комментариях к этой статье. Хочется получить обратную связь 🙂
Итак, веб-приложение на Django запущено. Как же начать тестировать бота? А всё очень просто — необходимо симулировать действия Telegram сервиса. Для этого нам понадобится HTTP клиент и тело запроса. В качестве HTTP клиента я часто использую Chrome плагин под названием Postman, а тело запроса мы возьмём напрямую из данных, полученных с помощью API вызова getUpdates.
После запуска runserver, URL на который необходимо посылать запрос выглядит следующим образом:
http://127.0.0.1:8000/planet/b…BOT_TOKEN/
где BOT_TOKEN — это токен нашего бота. Смотрим скриншот:
А давайте-ка отправим команду feed для получения списка новостей из Planet Python:
На скриншотах видно, что бот адекватно отреагировал на нашу команду вывести список последних 10 постов.
Следующим шагом является деплой нашего Django приложения на удалённый хост и последующий вызов метода setWebhook для передачи URL на который будет посылаться POST запрос от сервиса Telegram каждый раз при поступлении команд боту от пользователей. Об этом мы поговорим в следующей заметке.
💌 Присоединяйтесь к рассылке
Понравился контент? Пожалуйста, подпишись на рассылку.
Как создать чат-бота Telegram
Чат-бот — это автоматизированный многофункциональный помощник, который может принимать отправленные и отправленные инициированные сообщения, а с помощью SendPulse ваш бот может сохранять информацию в виде переменных для дальнейшего использования.
Следуйте пошаговой инструкции, чтобы создать своего первого чат-бота для мессенджера Telegram, или подключите существующего к SendPulse для дальнейшей настройки.
Если у вас уже есть бот, пропустите первый абзац и посмотрите следующий раздел.
Как создать нового бота для Telegram
Откройте мессенджер Telegram, войдите в свою учетную запись или создайте новую.
Шаг 1. Введите @Botfather во вкладке поиска и выберите этого бота.
Обратите внимание, что официальные боты Telegram имеют синюю галочку рядом с их именем
Нажмите «Пуск», чтобы активировать бота BotFather.
В ответ вы получите список команд для управления ботами.
Шаг 2 . Выберите или введите команду / newbot
и отправьте ее.
Шаг 3. Выберите имя для своего бота — ваши подписчики увидят его в разговоре. И выберите логин для своего бота — бота можно будет найти в поиске по логину. Имя пользователя должно быть уникальным и заканчиваться словом «бот».
После того, как вы выбрали подходящее имя для своего бота — бот создан. Вы получите сообщение со ссылкой на вашего бота t.me /
Для подключения бота к SendPulse необходим токен. Скопируйте значение токена и найдите дополнительную информацию о подключении бота к SendPulse в последнем разделе этой статьи.
Как найти токен для существующего бота
Шаг 1. Перейдите к боту @BotFather и отправьте команду / token
.
Вы увидите кнопки со всеми созданными вами ботами.
Шаг 2. Выберите тот, для которого вам нужен токен, чтобы вы могли подключить его к Sendpulse.
Скопируйте значение токена.
Как подключить бота к SendPulse
Перейдите в раздел «Чат-боты» в своей учетной записи SendPulse. Если вы впервые посещаете эту страницу и не подключили чат-ботов, нажмите кнопку «Подключить каналы».Если вы уже подключали ботов раньше — перейдите на вкладку «Основные» и нажмите кнопку «Управление ботами».
Затем выберите Telegram и нажмите кнопку «Включить Telegram».
Введите свой токен от нужного бота и нажмите «Подключиться».
В следующем окне нажмите кнопку «Подписаться».
Вы будете перенаправлены в приложение Telegram, нажмите кнопку «Пуск», и вы будете подписаны на своего бота.
Поздравляем! Вы успешно добавили своего чат-бота в SendPulse.
Вы можете выбрать своего бота и начать создавать приветственные и запускаемые потоки или массовые кампании.
Обратите внимание, существующие подписчики не импортируются в аудиторию вашего чат-бота SendPulse. После подключения бота вы можете собирать подписчиков с помощью виджета веб-сайта или напрямую делиться ссылкой на своего бота t.me/
Подключите своего бота Telegram
Последнее обновление: 27.11.2020
Боты FAQ
Если вы новичок в ботах Telegram, мы рекомендуем сначала ознакомиться с нашим Знакомство с ботами .
Вы также можете найти Bot API Manual полезным.
Общие вопросы Как создать бота?
Создавать ботов Telegram очень просто, но вам потребуются хотя бы некоторые навыки компьютерного программирования.Чтобы бот работал, создайте учетную запись бота с помощью @BotFather, а затем подключите его к своему внутреннему серверу через наш API.
К сожалению, готовых способов создать работающего бота, если вы не разработчик, не существует. Но мы уверены, что скоро вы найдете множество ботов, созданных другими людьми, с которыми можно будет поиграть.
Я разработчик. Где найти примеры?Вот два примера ботов, написанных на PHP:
- Hello Bot демонстрирует основы API бота Telegram. Бот
- Simple Poll является более полным примером, он поддерживает как длинный опрос, так и Webhooks для получения обновлений.
Многие члены нашего сообщества создают ботов и публикуют исходники.
Собираем на на этой странице »
Напишите нам на @BotSupport, если вы создали бота и хотели бы поделиться им с другими.
Вы добавите X в API ботов?API ботов еще довольно молод. Есть много потенциальных возможностей, которые следует рассмотреть и реализовать.Некоторое время мы будем изучать, что люди делают со своими ботами, чтобы увидеть, какие направления будут наиболее важными для платформы.
Приглашаем всех разработчиков ботов поделиться идеями о нашем Bot API в нашей учетной записи @BotSupport .
Какие сообщения будет получать мой бот?1. Все боты вне зависимости от настроек получат:
- Все служебные сообщения.
- Все сообщения из приватных чатов с пользователями.
- Все сообщения от каналов, участником которых они являются.
2. Администраторы ботов и боты с отключенным режимом конфиденциальности будут получать все сообщения, кроме сообщений, отправленных другими ботами.
3. Боты с включенным режимом конфиденциальности получат:
- Команды, явно предназначенные для них (например, / command @ this_bot).
- Общие команды от пользователей (например, / start) если бот был последним ботом, отправившим сообщение группе.
- сообщений, отправленных через этого бота.
- Отвечает на любые сообщения, явно или неявно предназначенные для этого бота.
Примечание , что каждое конкретное сообщение может быть доступно только одному боту с включенной конфиденциальностью за раз, то есть ответ боту A, содержащий явную команду для бота B или отправленный через бота C, будет доступен только боту A. Ответы имеют наивысший приоритет.
Почему мой бот не видит сообщения от других ботов?Боты, разговаривающие друг с другом, потенциально могут застрять в нежелательных циклах.Чтобы этого избежать, мы решили, что боты не смогут видеть сообщения от других ботов независимо от режима.
Получение обновлений Как мне получать обновления?В настоящее время есть два способа получения обновлений. Вы можете использовать либо длинный опрос, либо Webhooks. Обратите внимание, что , а не , возможно получать обновления с помощью длительного опроса, пока установлен исходящий Webhook.
Продолжительный опрос дает мне одни и те же обновления снова и снова!Метод getUpdates возвращает 100 первых неподтвержденных обновлений.Чтобы подтвердить обновление, используйте параметр offset при вызове getUpdates следующим образом:
смещение = update_id последнего обработанного обновления + 1
Все обновления с update_id меньше или равным смещению будут помечены как подтвержденные на сервере и больше не будут возвращаться.
У меня проблемы с Webhooks.Если вы успешно настроили веб-перехватчик, но не получаете никаких обновлений, помните:
- Для работы веб-перехватчиков необходим действующий сертификат SSL.
- Чтобы использовать самозаверяющий сертификат, вам необходимо загрузить свой сертификат открытого ключа с помощью параметра certificate в setWebhook. Пожалуйста, загрузите как InputFile, отправка строки не будет работать.
- Порты, которые в настоящее время поддерживаются для Webhooks: 443 , 80 , 88 , 8443 .
- Подстановочные сертификаты могут не поддерживаться.
- Перенаправления не поддерживаются.
- CN должен точно соответствовать вашему домену.
У меня проблемы с самозаверяющим сертификатом!Пожалуйста, ознакомьтесь с этим новым WEBHOOK GUIDE , чтобы узнать все, что нужно знать о веб-перехватчиках!
Ознакомьтесь с этим руководством по самозаверяющим сертификатам, которое мы сделали специально для вас.Если вы прочитали это, но у вас все еще есть вопрос, напишите нам в службу поддержки ботов.
Как я могу убедиться, что запросы Webhook поступают из Telegram?Если вы хотите убедиться, что запрос Webhook исходит от Telegram, мы рекомендуем использовать секретный путь в URL-адресе, который вы нам даете, например www.example.com/your_token. Поскольку никто другой не знает токен вашего бота, можете быть уверены, что это мы.
Как я могу делать запросы в ответ на обновления?Это возможно, если вы используете веб-перехватчики.Положительный момент в том, что вам нужно меньше запросов, недостаток — в этом случае невозможно узнать, что такой запрос был успешным, или получить его результат.
Каждый раз, когда вы получаете обновление веб-перехватчика, у вас есть два варианта:
1. Отправьте POST на https://api.telegram.org/bot
2. Ответьте напрямую и укажите метод как полезную нагрузку JSON в ответе
Работа со СМИ Как загружать файлы?Вы также можете взглянуть на наш пример HelloBot, он предлагает реализацию этого PHP.
Используйте метод getFile. Обратите внимание, что это будет работать только с файлами размером до 20 МБ.
Как загрузить большой файл?Боты в настоящее время могут отправлять файлы любого типа размером до 50 МБ, так что да, очень большие файлы пока работать не будут. Сожалею. Этот лимит может быть изменен в будущем.
Могу ли я рассчитывать на постоянство file_ids?Да, file_ids можно рассматривать как постоянные.
Вещание для пользователей Мой бот достигает пределов, как мне этого избежать?При отправке сообщений в определенном чате избегайте отправки более одного сообщения в секунду. Мы можем разрешить короткие пакеты, превышающие этот предел, но в конечном итоге вы начнете получать 429 ошибок.
Если вы отправляете массовые уведомления нескольким пользователям, API не будет разрешать более 30 сообщений в секунду или около того. Для достижения наилучших результатов рассмотрите возможность рассылки уведомлений через большие интервалы в 8–12 часов.
Также обратите внимание, что ваш бот не сможет отправлять более 20 сообщений в минуту в одну и ту же группу.
Как я могу отправить сообщение всем подписчикам моего бота сразу?К сожалению, на данный момент у нас нет методов для отправки массовых сообщений, например уведомления. Мы можем добавить что-нибудь в этом роде в будущем.
Чтобы избежать выхода за наши пределы при рассылке массовых уведомлений, рассмотрите возможность их распространения на более длительные интервалы, например 8-12 часов.API не будет разрешать массовые уведомления более чем ~ 30 пользователям в секунду, если вы перейдете через это, вы начнете получать 429 ошибок.
См. Также: Как избежать превышения лимита?
Если у вас есть вопросы, на которые нет ответа на этой странице, напишите нам на @BotSupport в Telegram.
Мы приветствуем любые предложения по бот-платформе и API.
Как создать бота Telegram
Чат-ботов часто рекламируют как революцию в способах взаимодействия пользователей с технологиями и предприятиями.У них довольно простой интерфейс по сравнению с традиционными приложениями, поскольку они требуют от пользователей только общения в чате, а чат-боты должны понимать и делать все, что от них требует пользователь, по крайней мере теоретически.
Многие отрасли переводят обслуживание клиентов на системы чат-ботов. Это связано с огромным падением стоимости по сравнению с обычными людьми, а также из-за надежности и постоянной доступности. Чат-боты обеспечивают определенную поддержку пользователей без существенных дополнительных затрат.
Сегодня чат-боты используются во многих сценариях, начиная от черных задач, таких как отображение времени и данных о погоде, до более сложных операций, таких как элементарная медицинская диагностика и общение с клиентами / поддержка. Вы можете разработать чат-бота, который поможет вашим клиентам, когда они задают определенные вопросы о вашем продукте, или вы можете создать чат-бота личного помощника, который сможет выполнять основные задачи и напоминать вам, когда пора идти на встречу или в тренажерный зал.
Когда дело доходит до развертывания чат-бота, существует множество вариантов, и одним из наиболее распространенных вариантов использования являются платформы социальных сетей, поскольку большинство людей используют их на регулярной основе.То же самое можно сказать и о приложениях для обмена мгновенными сообщениями, хотя и с некоторыми оговорками.
Telegram — одна из самых популярных сегодня платформ обмена мгновенными сообщениями, поскольку она позволяет хранить сообщения в облаке, а не только на вашем устройстве, и может похвастаться хорошей многоплатформенной поддержкой, так как Telegram можно использовать на Android, iOS, Windows и просто о любой другой платформе, которая может поддерживать веб-версию. Создать чат-бота в Telegram довольно просто и требуется несколько шагов, которые займут очень мало времени. Чат-бот может быть интегрирован в группы и каналы Telegram, а также работает сам по себе.
В этом уроке мы создадим бота Telegram, который предоставит вам изображение аватара из Adorable Avatars. Наш пример будет включать создание бота с использованием Flask и его развертывание на бесплатном сервере Heroku.
Для выполнения этого руководства вам понадобится Python 3, установленный в вашей системе, а также навыки программирования на Python. Кроме того, хорошее понимание того, как работают приложения, было бы хорошим дополнением, но не обязательным, так как мы подробно рассмотрим большую часть того, что мы представляем. Вам также необходимо установить Git в вашей системе.
Конечно, для этого учебника также требуется учетная запись Telegram, которая бесплатна. Вы можете зарегистрироваться здесь. Также требуется учетная запись Heroku, и вы можете получить ее бесплатно здесь.
Оживление вашего Telegram-бота
Чтобы создать чат-бота в Telegram, вам необходимо связаться с BotFather, который по сути является ботом, используемым для создания других ботов.
Вам нужна команда / newbot
, которая ведет к следующим шагам для создания вашего бота:
У вашего бота должно быть два атрибута: имя и имя пользователя.Имя будет отображаться для вашего бота, а имя пользователя будет использоваться для упоминаний и обмена.
После выбора имени бота и имени пользователя, которое должно заканчиваться на «бот», вы получите сообщение, содержащее ваш токен доступа, и вам, очевидно, потребуется сохранить свой токен доступа и имя пользователя на будущее, так как они вам понадобятся.
Кодирование логики чат-бота
В этом руководстве мы будем использовать Ubuntu. Для пользователей Windows большинство команд здесь будет работать без каких-либо проблем, но если у вас возникнут какие-либо проблемы с настройкой виртуальной среды, обратитесь по этой ссылке.Что касается пользователей Mac, это руководство должно работать нормально.
Во-первых, давайте создадим виртуальную среду. Это помогает изолировать требования вашего проекта от глобальной среды Python.
$ python -m venv botenv /
Теперь у нас будет каталог botenv /
, который будет содержать все библиотеки Python, которые мы будем использовать. Идите вперед и активируйте virtualenv
, используя следующую команду:
$ источник botenv / bin / activate
Библиотеки, которые нам нужны для нашего бота:
Вы можете установить их в виртуальной среде с помощью следующей команды pip:
(телебот) $ pip install flask
(Telebot) $ pip установить python-telegram-bot
(Telebot) запросы на установку $ pip
Теперь давайте просмотрим каталог нашего проекта.
.
├── app.py
├── телебот
│ ├── credentials.py
│ | .
│ | вы можете построить свой двигатель здесь
│ | .
│ └── __init__.py
└── ботенв
В файле credentials.py
нам понадобятся три переменные:
bot_token = "Вот ваш токен доступа от BotFather"
bot_user_name = "введенное вами имя пользователя"
URL = "ссылка на приложение heroku, которую мы создадим позже"
Теперь вернемся к нашему app.py и пошагово пройдемся по коду:
# импортировать все
из фляги импорт фляги, запрос
телеграмма импорта
от телебота.импорт учетных данных bot_token, bot_user_name, URL
глобальный бот
глобальный ТОКЕН
TOKEN = bot_token
bot = telegram.Bot (токен = ТОКЕН)
Теперь у нас есть объект бота, который будет использоваться для любого действия, которое мы требуем от бота.
# запустить приложение flask
app = Flask (__ имя__)
Нам также нужно привязать функции к определенным маршрутам. Другими словами, нам нужно указать Flask, что делать при вызове определенного адреса. Более подробную информацию о Flask и маршрутах можно найти здесь.
В нашем примере функция маршрута отвечает на URL-адрес, который в основном представляет собой / {token}
, и это URL-адрес, который Telegram будет вызывать для получения ответов на сообщения, отправленные боту.
@ app.route ('/ {}'. Формат (ТОКЕН), методы = ['POST'])
def response ():
# получить сообщение в JSON и затем преобразовать его в объект Telegram
update = telegram.Update.de_json (request.get_json (force = True), бот)
chat_id = update.message.chat.id
msg_id = update.message.message_id
# Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с Unicode
текст = обновление.message.text.encode ('utf-8'). decode ()
# только для отладки
print ("получил текстовое сообщение:", текст)
# при первом общении с ботом AKA приветственное сообщение
если text == "/ start":
# распечатать приветственное сообщение
bot_welcome = "" "
Добро пожаловать в бот coolAvatar, бот использует службу http://avatars.adorable.io/ для создания крутых аватаров на основе введенного вами имени, поэтому введите имя, и бот ответит аватаром на ваше имя.
"" "
# отправить приветственное сообщение
бот.sendMessage (chat_id = chat_id, text = bot_welcome, reply_to_message_id = msg_id)
еще:
пытаться:
# очистить полученное сообщение от всех не алфавитов
text = re.sub (r "\ W", "_", текст)
# создать ссылку api для аватара на основе http://avatars.adorable.io/
url = "https://api.adorable.io/avatars/285/{}.png" .format (text.strip ())
# ответьте фотографией на имя, отправленное пользователем,
# обратите внимание, что вы можете отправлять фотографии по URL-адресу, и Telegram получит их за вас
бот.sendPhoto (chat_id = chat_id, photo = url, reply_to_message_id = msg_id)
кроме исключения:
# если что-то пошло не так
bot.sendMessage (chat_id = chat_id, text = "Возникла проблема с именем, которое вы использовали, введите другое имя", reply_to_message_id = msg_id)
верни "ок"
Интуитивно понятный способ заставить эту функцию работать — это то, что мы будем вызывать ее каждую секунду, чтобы она проверяла, пришло ли новое сообщение, но мы не будем этого делать. Вместо этого мы будем использовать Webhook, который позволяет боту вызывать наш сервер всякий раз, когда вызывается сообщение, так что нам не нужно заставлять наш сервер страдать во время цикла ожидания сообщения.
Итак, мы создадим функцию, которую нам самим нужно будет вызвать для активации Webhook Telegram, по сути говоря, что Telegram должен вызывать определенную ссылку при поступлении нового сообщения. Мы вызовем эту функцию только один раз при первом создании бота. Если вы измените ссылку на приложение, вам нужно будет снова запустить эту функцию с новой ссылкой, которая у вас есть.
Маршрут здесь может быть любым; Вы тот, кто назовет его:
@ app.route ('/ setwebhook', methods = ['GET', 'POST'])
def set_webhook ():
# мы используем объект бота, чтобы связать бота с нашим приложением, которое
# в ссылке, предоставленной URL
s = бот.setWebhook ('{URL} {HOOK}'. format (URL = URL, HOOK = TOKEN))
# кое-что, чтобы сообщить нам, что все работает
если s:
верните "webhook setup ok"
еще:
вернуть "сбой настройки веб-перехватчика"
Теперь, когда все настроено, давайте просто создадим красивую домашнюю страницу, чтобы мы знали, что движок запущен.
@ app.route ('/')
def index ():
возвращение '.'
если __name__ == '__main__':
# обратите внимание на резьбовой аргумент, который позволяет
# ваше приложение должно иметь более одного потока
app.run (поток = True)
Давайте посмотрим на полную версию приложения.py:
импорт ре
из фляги импорт фляги, запрос
телеграмма импорта
from telebot.credentials import bot_token, bot_user_name, URL
глобальный бот
глобальный ТОКЕН
TOKEN = bot_token
bot = telegram.Bot (токен = ТОКЕН)
app = Flask (__ имя__)
@ app.route ('/ {}'. format (TOKEN), methods = ['POST'])
def response ():
# получить сообщение в JSON и затем преобразовать его в объект Telegram
update = telegram.Update.de_json (request.get_json (force = True), бот)
chat_id = update.message.chat.id
msg_id = обновить.message.message_id
# Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с Unicode
текст = update.message.text.encode ('utf-8'). decode ()
# только для отладки
print ("получил текстовое сообщение:", текст)
# при первом общении с ботом AKA приветственное сообщение
если text == "/ start":
# распечатать приветственное сообщение
bot_welcome = "" "
Добро пожаловать в бот coolAvatar, бот использует службу http://avatars.adorable.io/ для создания крутых аватаров на основе введенного вами имени, поэтому введите имя, и бот ответит аватаром на ваше имя."" "
# отправить приветственное сообщение
bot.sendMessage (chat_id = chat_id, text = bot_welcome, reply_to_message_id = msg_id)
еще:
пытаться:
# очистить полученное сообщение от всех не алфавитов
text = re.sub (r "\ W", "_", текст)
# создать ссылку api для аватара на основе http://avatars.adorable.io/
url = "https://api.adorable.io/avatars/285/{}.png" .format (text.strip ())
# ответьте фотографией на имя, отправленное пользователем,
# обратите внимание, что вы можете отправлять фотографии по URL-адресу, и Telegram получит их за вас
бот.sendPhoto (chat_id = chat_id, photo = url, reply_to_message_id = msg_id)
кроме исключения:
# если что-то пошло не так
bot.sendMessage (chat_id = chat_id, text = "Возникла проблема с именем, которое вы использовали, введите другое имя", reply_to_message_id = msg_id)
верни "ок"
@ app.route ('/ set_webhook', methods = ['GET', 'POST'])
def set_webhook ():
s = bot.setWebhook ('{URL} {HOOK}'. format (URL = URL, HOOK = TOKEN))
если s:
верните "webhook setup ok"
еще:
вернуть "сбой настройки веб-перехватчика"
@приложение.маршрут('/')
def index ():
возвращение '.'
если __name__ == '__main__':
app.run (поток = True)
Это последний фрагмент кода, который вы напишете в нашем руководстве. Теперь мы можем перейти к последнему шагу, запустив наше приложение на Heroku.
Запустите наше приложение на Heroku
Нам нужно кое-что, прежде чем мы создадим наше приложение.
Heroku не может знать, какие библиотеки использует ваш проект, поэтому мы должны сообщить ему об этом с помощью файла requirements.txt
— распространенная проблема заключается в том, что вы неправильно пишете требования, поэтому будьте осторожны — чтобы сгенерировать файл требований с помощью pip:
pip freeze> требования.текст
Теперь у вас есть готовый файл требований.
Теперь вам нужен Procfile
, который сообщает Heroku, где начинается наше приложение, поэтому создайте файл Procfile
и добавьте следующее:
веб-сайт: gunicorn app: app
Шаг возврата: вы можете добавить файл .gitignore
в свой проект, чтобы неиспользуемые файлы не загружались в репозиторий.
На панели управления Heroku создайте новое приложение. Как только вы это сделаете, он направит вас на страницу Deploy .Затем откройте вкладку Settings в новом окне и скопируйте домен приложения, который будет примерно https://appname.herokuapp.com/
, и вставьте его в переменную URL внутри credentials.py
.
Теперь вернитесь на вкладку Развертывание и выполните шаги:
Примечание. Пользователи Windows и macOS могут выполнить действия, описанные здесь.
Войти в Heroku:
$ heroku войти
Обратите внимание, что этот метод иногда застревает в , ожидая входа в систему
, если это произойдет с вами, попробуйте войти, используя:
$ heroku логин -i
Инициализировать репозиторий Git в нашем каталоге:
$ git init
$ heroku git: remote -a {имя-проекта-героя}
Развернуть приложение:
$ git add.$ git commit -m "первая фиксация"
$ git push герой мастер
На этом этапе вы увидите прогресс строительства в вашем терминале. Если все прошло нормально, вы увидите что-то вроде этого:
пульт: -----> Запуск ...
удаленный: выпущена v6
удаленный: https://project-name.herokuapp.com/ развернут на Heroku
дистанционный пульт:
удаленный: проверка развертывания ... выполнено.
Теперь перейдите на страницу приложения (ссылка на домен, который вы скопировали ранее) и добавьте в конец ссылки / setwebhook
, чтобы адрес был примерно таким: https: // имя приложения.herokuapp.com/setwebhook
. Если вы видите webhook setup ok
, это означает, что вы готовы к работе!
Теперь поговорите со своим ботом
Живая версия бота
Последние штрихи, советы и хитрости
Теперь у вас есть бот Telegram, работающий круглосуточно и без выходных. Вы можете добавить к боту любую логику, которую хотите, так, например, вы можете сделать своего бота более реалистичным, добавив статус «печатает» и отправив статус фотографии следующим образом:
Следующий фрагмент кода из функции response ()
:
если text == "/ start":
# распечатать приветственное сообщение
bot_welcome = "" "
Добро пожаловать в бот coolAvatar, бот использует сервис из http: // avatars.adorable.io/ для создания крутых аватаров на основе имени, которое вы вводите, поэтому введите имя, и бот ответит аватаром на ваше имя.
"" "
# отправить приветственное сообщение
bot.sendChatAction (chat_id = chat_id, action = "typing")
сон (1.5)
bot.sendMessage (chat_id = chat_id, text = bot_welcome, reply_to_message_id = msg_id)
еще:
пытаться:
# очистить полученное сообщение от всех не алфавитов
text = re.sub (r "\ W", "_", текст)
# создать ссылку api для аватара на основе http: // avatars.adorable.io/
url = "https://api.adorable.io/avatars/285/{}.png" .format (text.strip ())
# ответьте фотографией на имя, отправленное пользователем,
# обратите внимание, что вы можете отправлять фотографии по URL-адресу, и Telegram получит их за вас
bot.sendChatAction (chat_id = chat_id, action = "upload_photo")
сон (2)
bot.sendPhoto (chat_id = chat_id, photo = url, reply_to_message_id = msg_id)
кроме исключения:
# если что-то пошло не так
bot.sendMessage (chat_id = chat_id, text = "Возникла проблема с именем, которое вы использовали, введите другое имя", reply_to_message_id = msg_id)
Как вы можете видеть во фрагменте, мы добавили действие ввода, когда мы собираемся отправить информацию о боте в текстовом формате, и добавили действие загрузки фотографии, когда мы собираемся отправить фотографию, чтобы сделать бота больше реалистично.Больше действий можно найти здесь.
Вы также можете изменить изображение и описание бота из канала BotFather, чтобы сделать его более удобным.
Еще много простых примеров телеграмм-ботов можно найти на странице python-telegram-bot на GitHub.
Вы можете развить нашего бота и сделать его следующим супер-AI-ботом — все, что вам нужно сделать, это интегрировать свою логику в функцию response ()
. Например, ваша логика может находиться в отдельном модуле и может вызываться внутри функции response ()
следующим образом:
.├── app.py
├── телебот
│ ├── credentials.py
│ ├──ai.py
│ | .
│ | вы можете построить свой двигатель здесь
│ | .
│ └── __init__.py
└── ботенв
А внутри ai .py:
def generate_smart_reply (текст):
# здесь мы можем делать всю нашу работу
верните "это умный ответ от ai!"
Импортировать сейчас в приложение .py:
импорт ре
от времени импортный сон
из фляги импорт фляги, запрос
телеграмма импорта
С телебота.AI импорт generate_smart_reply
from telebot.credentials import bot_token, bot_user_name, URL
Затем просто вызовите его внутри кода response ()
.
def response ():
# получить сообщение в JSON и затем преобразовать его в объект Telegram
update = telegram.Update.de_json (request.get_json (force = True), бот)
chat_id = update.message.chat.id
msg_id = update.message.message_id
# Telegram понимает UTF-8, поэтому кодируйте текст для совместимости с Unicode
текст = обновление.message.text.encode ('utf-8'). decode ()
# только для отладки
print ("получил текстовое сообщение:", текст)
# здесь позвони своему умному ответному сообщению
reply = generate_smart_reply (текст)
bot.sendMessage (chat_id = chat_id, text = reply, reply_to_message_id = msg_id)
Теперь ваш бот может работать так, как вы хотите — вперед и создайте следующую большую вещь!
Надеюсь, вам понравилось создавать своего первого бота для Telegram.
Дополнительные ресурсы
Как шаг за шагом создать Telegram BOT, не вводя код | автор: Антонио Миньяно
Если вы еще этого не сделали, разархивируйте проект внутри папки, затем переименуйте .envExample с по .env (см. позже, если вы работаете в Windows) и отредактируйте следующую строку, вставив свой API-токен , предоставленный BotFather :
TELEGRAM_TOKEN = ””
Если вы в Windows:
У вас могут возникнуть проблемы с переименованием файла, просто откройте меню «Пуск» и введите «cmd», затем откройте «Командную строку» и выполните следующие действия:
Теперь пора проявить творческий подход.
Откройте файл answers.json и давайте взглянем на него.
Здесь хранятся все ответы, легко увидеть структуру, конкатенацию этих «объектов», которые содержат триггеры, и ответы на каждый из этих триггеров.
Конечно, это всего лишь пример с 3 ответами, вы можете получить намного больше.
Давайте проанализируем, как он составлен:
- триггеры : конкатенация строк, которые запускают тот ответ
- ответов : конкатенация «подчиненных объектов»
В каждом из ответов есть
- ответ : это то, что должно быть отправлено как сообщение
- тип : он указывает тип ответа, может быть « текст» , « аудио» или « image »
В зависимости от типа ответ должен иметь значимое значение: в случае, если тип равен audio или image , значение ответа должно быть допустимым путем к файл на вашем компьютере, даже если настоятельно рекомендуется поместить такие носители в папку «media» .
На данный момент протестированы расширения для носителей: «.jpg», «.gif» и «.mp3».
В командной строке введите следующую команду (внутри папки проекта), чтобы загрузить все зависимости, необходимые для бота:
npm install
Мы почти закончили, теперь, когда все настроено, можно, наконец, запускаем нашего бота. В той же консоли , которую мы использовали для установки всех зависимостей, которые мы должны запустить:
npm start
И это результат
Вы можете заметить, что в консоли есть несколько сообщений [INFO], которые помогут вам сохранить отслеживать, кто использует вашего бота, та же информация хранится в файле, который вы найдете в папке проекта, под названием debug.журнал .
Бот может быть остановлен и перезапущен без каких-либо проблем.
Если вы хотите запустить его на безголовом компьютере, таком как Raspberry, вы можете найти способ, чтобы он не мешал другим приложениям, прочтите мою другую статью о Экран Unix:
Как добавить бота в Telegram
Особенность, которая выделяет популярное приложение для обмена мгновенными сообщениями Telegram, — это возможность использовать ботов в групповых чатах. Их цель — существенно улучшить возможности Telegram за счет удобства и развлечения.Если вы являетесь администратором супергруппы и хотите узнать, как добавить бота, мы рассмотрели инструкции в этой статье.
Мы будем добавлять ботов в чат-группы через разные операционные системы, узнавать больше об их полезности и о том, чем они отличаются от людей в чатах. Кроме того, в наших часто задаваемых вопросах рассказывается, как создать собственного уникального бота.
Как добавить ботов в Telegram?
Бот Telegram — это стороннее приложение, используемое для улучшения его функциональности, выполняя определенные функции, следуя инструкциям и взаимодействуя с другими участниками.В следующих разделах приведены шаги по добавлению бота в супергруппу.
Добавление бота в чат супергруппы с помощью iPhone
- Запустите приложение Telegram.
- Внизу экрана щелкните значок Контакты.
- Вверху экрана щелкните строку поиска.
- Введите имя бота, которого вы хотите добавить, @ [имя бота].
- Щелкните имя бота, чтобы отобразить его в чате.
- В правом верхнем углу окна чата выберите изображение профиля бота.
- Найдите и выберите опцию «Добавить в группу» под опцией «Отправить сообщение», чтобы получить доступ к списку групп, в которые нужно добавить участников.
- Выберите группу, в которую вы хотите добавить бота.
- Щелкните «Да» для подтверждения.
Добавление бота в чат супергруппы с помощью Android
- Запустите приложение Telegram.
- Внизу экрана щелкните значок Контакты.
- Вверху экрана щелкните строку поиска.
- Введите имя бота, которого вы хотите добавить, @ [имя бота].
- Щелкните имя бота, чтобы отобразить его в чате.
- В правом верхнем углу окна чата выберите изображение профиля бота.
- Найдите и выберите опцию «Добавить в группу» под опцией «Отправить сообщение», чтобы получить доступ к списку групп, в которые нужно добавить участников.
- Выберите группу, в которую вы хотите добавить бота.
- Щелкните «Да» для подтверждения.
Добавление бота в чат супергруппы с помощью Mac
- Перейдите в папку «Приложения», чтобы найти и запустить приложение Telegram.
- В текстовом поле поиска в верхнем левом углу экрана введите имя бота, которого вы хотите добавить.
- Нажмите клавишу возврата, чтобы просмотреть список результатов поиска ботов, соответствующих вашему запросу.
- Нажмите на бота, которого хотите добавить в группу, бот откроется и отобразится справа.
- Чтобы открыть профиль бота, выберите его имя в верхней части окна.
- В правом верхнем углу окна выберите опцию «Добавить в группу».
- Выберите супергруппу, которую вы хотите добавить к боту.
- Нажмите «ОК» для подтверждения.
Добавление бота в чат супергруппы с помощью Windows 10
- Перейдите в меню Windows, чтобы найти и запустить приложение Telegram.
- В текстовом поле поиска в верхнем левом углу экрана введите имя бота, которого вы хотите добавить.
- Нажмите клавишу возврата, чтобы просмотреть список результатов поиска ботов, соответствующих вашему запросу.
- Нажмите на бота, которого хотите добавить в группу, бот откроется и отобразится справа.
- Чтобы открыть профиль бота, выберите его имя в верхней части окна.
- В правом верхнем углу окна выберите опцию «Добавить в группу».
- Выберите супергруппу, в которую вы хотите добавить бота.
- Нажмите «ОК» для подтверждения.
Бонусы для ботов
Использование ботов в Telegram может быть практичным:
- Ботов можно использовать в качестве виртуальных помощников для предоставления прогнозов погоды, предупреждений, перевода и других административных услуг.
- Боты могут доставлять релевантный контент, предоставляя настраиваемые новости и уведомления, как только они становятся доступными.
- Прием платежей за товары и услуги. Платежный API для ботов — это бесплатная платформа, на которой продавцы могут получать платежи от пользователей Telegram.
- Боты помогают создавать социальные связи, объединяя людей, желающих общаться на основе общих интересов или близости.
- Боты могут интегрироваться с другими сервисами, такими как YouTube и музыкальные боты, для дополнительного развлечения.
- Боты предоставляют игры для нескольких и одного игрока, от простых головоломок до стратегических игр в реальном времени.
Чем боты отличаются от людей?
Ниже приведены различия между участниками-людьми и ботами в Telegram:
- Для ботов, работающих в режиме конфиденциальности, после добавления в группу они не будут получать сообщения, ранее отправленные группе.
- У них ограниченное облачное хранилище, поэтому старые обработанные сообщения сразу удаляются сервером.
- Боты не могут начинать разговоры с людьми. Они должны быть добавлены в группу, или пользователь должен сначала отправить им сообщение.
- Их имя пользователя всегда будет заканчиваться на «бот».
- Их ярлык отображается как «бот» без информации о времени последнего посещения или онлайн-статусе.
BotFather
«BotFather — единственный бот, который правит ими всеми».
BotFather — бот, используемый для создания новых ботов и управления существующими через Telegram. Чтобы связаться с BotFather, вы можете либо найти его под именем пользователя @Botfather, либо перейти на https: // telegram.мне / botfather, чтобы начать разговор. BotFather представится, и вам будет доступна кнопка «Старт», чтобы вы могли ответить.
Дополнительные ответы на вопросы
Как удалить ботов в Telegram?
Чтобы удалить бота Telegram из списка бесед через Android:
Примечание. Удаление бота также приведет к удалению беседы.
1. Запустите приложение Telegram.
2. Нажмите и удерживайте имя бота, чтобы отобразить меню внизу экрана.
3. Выберите «Удалить и остановить».
4. Нажмите «ОК» для подтверждения.
1. Запустите приложение Telegram.
2. Найдите бота, которого хотите удалить, и смахните влево по беседе.
3. Щелкните значок «Удалить» из набора значков, которые выдвигаются справа.
4. Выберите «Удалить и остановить» из параметра, отображаемого в нижней части экрана.
Как добавить бота в группу Telegram?
Чтобы добавить бота в чат-группу с помощью устройства Android или iPhone:
1.Запустите приложение Telegram.
2. В нижней части экрана щелкните значок Контакты.
3. В верхней части экрана щелкните строку поиска.
4. Введите имя бота, которого вы хотите добавить, @ [botname].
5. Щелкните имя бота, чтобы отобразить его в чате.
6. В правом верхнем углу окна чата выберите изображение профиля бота.
7.Найдите и выберите опцию «Добавить в группу» под опцией «Отправить сообщение», чтобы получить доступ к списку групп, в которые нужно добавить участников.
8. Выберите группу, в которую вы хотите добавить бота.
9. Нажмите «Да» для подтверждения.
Чтобы добавить бота в чат-группу с помощью Mac или ПК:
1. Перейдите в папку «Приложения» (Mac) или в меню Windows (ПК), чтобы найти и запустить приложение Telegram.
2. В поле поиска в верхнем левом углу экрана введите имя бота, которого вы хотите добавить.
3. Нажмите клавишу возврата, чтобы просмотреть список результатов поиска ботов, соответствующих вашему запросу.
4. Нажмите на бота, которого хотите добавить в группу, бот откроется и отобразится справа.
5. Чтобы открыть профиль бота, выберите его имя в верхней части окна.
6. В правом верхнем углу окна выберите опцию «Добавить в группу».
7. Выберите супергруппу, в которую вы хотите добавить бота.
8. Нажмите «ОК» для подтверждения.
Как создать нового бота Telegram?
1.Сначала начните разговор с BotFather, выполнив поиск по имени пользователя @Botfather или перейдя на https://telegram.me/botfather.
2. Затем введите и отправьте команду « / newbot.
”
3. BotFather запросит имя и имя пользователя. Укажите понятное имя и уникальное имя пользователя.
· BotFather сгенерирует токен авторизации.
4. Скопируйте токен в буфер обмена и перейдите в раздел «Каналы» вашего бота через портал Azure, затем нажмите «Telegram.”
5. Вставьте токен авторизации в поле“ Access Token ”, затем“ Save ”.
· Ваш бот успешно создан; один и готов к общению с другими участниками Telegram.
· Включите «Встроенные запросы», чтобы пользователи могли вызывать вашего бота, вводя его имя пользователя и запрос в любой чат.
· Ознакомьтесь с руководством по API ботов, чтобы узнать, чему вы можете научить своего бота.
Маленькие виртуальные помощники Telegram
Созданные на основе искусственного интеллекта боты в Telegram используются для улучшения обмена сообщениями, по сути, выполняя административные задачи, связывая людей и обеспечивая развлечения.Боты в приложениях для обмена сообщениями становятся все более распространенными, и возможность их использования доступна в нескольких популярных приложениях.
Теперь, когда вы знаете, как добавить бота в чат, создать бота и другую информацию о боте; Как вы думаете, бот проделал большую работу по повышению вашего опыта? Как бот обслужил группу — и работал ли он, как ожидалось? Сообщите нам, что вы думаете об использовании ботов в приложениях для обмена сообщениями, в разделе комментариев ниже.
Создание бота Telegram — Справочный центр Flow XO
Выполните следующие действия, чтобы подключить своего бота к Telegram:
- В Flow XO щелкните Bots в верхней строке меню, затем выберите + New .
- Теперь выберите Telegram в качестве платформы обмена сообщениями.
- Введите описательное имя для бота.
- Затем вы должны перейти по этой ссылке, чтобы начать разговор с @BotFather и создать бота с помощью команды «/ newbot». Более подробные инструкции вы найдете на сайте Telegram.
- После того, как вы создадите бота, вам будет выдан токен. Скопируйте его, так как вам нужно будет вставить его в Flow XO.
- Для поддержки всех доступных типов сообщений вам также необходимо включить «/ setinline» (для упоминания или прямого упоминания) и «/ setprivacy» для отключения (для подслушивания) в BotFather.Мы объясним, как дальше.
- Чтобы включить встроенную поддержку, отправьте сообщение @BotFather с помощью «/ setinline». Когда он спросит, выберите только что созданного бота. Теперь вам будет предложено ввести сообщение-заполнитель. Введите здесь что-нибудь, мы предлагаем общий вариант «Спросите что-нибудь». Затем вы должны увидеть сообщение о том, что ваши встроенные настройки были обновлены.
- По умолчанию боты Telegram могут слышать только сообщения, адресованные им. Чтобы включить подслушивающие команды (если они вам нужны), вы должны отключить конфиденциальность. Хорошая практика — оставлять конфиденциальность включенной, если вам действительно не нужно подслушивать. Сообщение @BotFather с помощью «/ setprivacy». Затем вам будет предложено выбрать бота. Теперь введите «отключить», чтобы изменить режим конфиденциальности, и, наконец, вы должны увидеть сообщение об успешном завершении.
- Вернувшись в Flow XO, введите имя пользователя нового бота и вставьте токен, который вам ранее дал @BotFather.
- Наконец, сохраните бота. Теперь бот запущен!
- Последний шаг предоставит вам подробную информацию о том, как распространить вашего бота среди других пользователей.
Распространение вашего бота
Для распространения вашего бота среди других пользователей вы можете использовать ссылку в таком формате:
https: // телеграмма.я / {имя пользователя}
Где {username} — имя пользователя вашего бота. Это позволит любому пользователю Telegram начать разговор с вашим ботом. Конечно, человек, переходящий по ссылке, должен быть зарегистрирован и готов использовать Telegram на своем устройстве.
Если вы хотите дать людям ссылку, позволяющую им добавить вашего бота в свою группу, вы можете использовать следующий формат ссылки:
https://telegram.me/{username}?startgroup=1
Снова замените {username} на имя пользователя вашего бота.
Настройка бота
Существует множество дополнительных настроек, которые вы можете обновить с помощью @BotFather, которые улучшат внешний вид вашего бота и дадут вашим пользователям больше информации о том, что он делает.
Обо всех настройках бота можно прочитать в Telegram.
Кнопка пуска
Когда пользователь впервые подключается к боту (он нажимает кнопку «СТАРТ» в Telegram), боту будет отправлено сообщение «/ start». Вы можете проверить наличие этого, чтобы узнать, что пользователь нажал «ПУСК» и впервые поприветствовал пользователя. Начальное сообщение также может иметь необязательные аргументы в случае глубокой ссылки (способ направлять трафик в определенные потоки с помощью URL-адресов).Узнайте, как работать с командами здесь и как настроить их в Telegram с автозаполнением для ваших пользователей здесь.
Особенности Telegram
Telegram обладает множеством уникальных мощных функций. Поскольку Flow XO поддерживает множество каналов, а не только Telegram, наши стандартные инструменты построения потоков не могут использовать многие из этих функций. Однако, если вы создаете определенные потоки Telegram, вы можете воспользоваться ими из Flow XO, используя нашу интеграцию Telegram Actions, которая обеспечивает легкий доступ к большинству функций ботов Telegram.
Сообщите нам, как мы можем улучшить Flow XO на нашем сайте отзывов.
Как создать своего первого бота для Telegram: руководство для абсолютных новичков | Процессная улица
Я был одержим научной фантастикой с подросткового возраста, поэтому программирование всегда нравилось мне. Я был очарован идеей, что можно написать программу, которая ведет себя случайным образом — для меня это уже было глубоко в области научной фантастики!
Эта навязчивая идея подтолкнула мои первые набеги на код и привела к появлению множества забавных ботов.Например, тот, который описывает пугающие звуки мест, комбинируя слова наугад, и тот, который раскрашивает PNG в блочные цвета.
Ничего особенного. Я вряд ли мастер-программист, да и вам не обязательно. Имея базовые знания в области программирования и API, вы можете создавать действительно полезные программы для развлечения и получения прибыли. В этом руководстве мы рассмотрим создание бота Telegram с нуля.
Бот Telegram можно использовать с Intercom API, чтобы агенты службы поддержки могли связаться со своими клиентами, использующими Telegram.Он также может включать автоматизацию, которая объединяет полезные ресурсы с живым чатом, как в примере ниже от orat.io:
Telegram — отличный дом для ботов, ориентированных на клиентов, с более чем 200000000 активных пользователей в месяц и ежегодным темпом роста 50%. Это платформа, которую ваша аудитория уже может использовать, что снижает трение и способствует принятию. Кроме того, создавать ботов для Telegram очень просто — это самый простой способ создания ботов, который у меня когда-либо был.
Вот почему я решил написать это руководство — оно могло бы стать хорошей отправной точкой для начинающих программистов, ищущих что-то мгновенно полезное (и потенциально ценное), используя популярную и функциональную платформу.
Первый бот, который я сделал для Telegram, использовал RSS для поиска материалов Hacker News, соответствующих поисковому запросу:
Поиграйте с ботом — он здесь в прямом эфире!
Используя знания из этого руководства и немного продолжая чтение, вы можете создать чат-бота поддержки для своей компании, программу чтения RSS-каналов, панель управления для вашего умного дома или бота, который будет отвечать, используя только цитаты Шекспира. Маленькие программные проекты, подобные этому, очень интересны и бесконечно расширяемы.Чем больше вы читаете и придумываете функции, тем дальше вы сможете продвинуть своего бота.
В этом руководстве вы узнаете:
- Как с нуля написать Telegram-бота
- Как добавлять новые команды в словарь бота
- Основные команды терминала для создания файлов и навигации по папкам
- Немного о языке программирования Ruby
- Как расширить Ruby драгоценными камнями
- Как заставить вашего бота возвращать случайные ответы из списка
- Несколько простых команд git, которые помогут вам управлять файлами кода и передавать их
- Как развернуть бота на сервере и запускать его круглосуточно
Перед запуском вам понадобится:
- Терминал bash. Поставляется в комплекте с macOS и Linux, но не с большинством инсталляций Windows. Если вы следуете этому руководству на компьютере с Windows, на котором не установлено юбилейное обновление Windows 10, вы можете использовать эмулятор или эмулировать Linux на виртуальной машине.
- Рубин. Обратитесь к официальной документации Ruby за руководствами по ОС. Я лично использую Homebrew на macOS, но пользователи Windows могут установить его с помощью этого инструмента.
- Упаковщик. Bundler помогает управлять драгоценными камнями Ruby, которые добавляют дополнительные функции вашим приложениям.Он понадобится вам для добавления интерфейса к Telegram API вашему боту. Просто запустите
gem install bundler
в своем терминале, чтобы установить его. - Текстовый редактор. Теоретически вы можете использовать Блокнот или TextEdit, но большинство из них порекомендовали бы специальный редактор, такой как Atom, который выделяет синтаксис и помогает сделать ошибки кода более очевидными.
Итак, приступим.
Шаг 1. Загрузите приложение Telegram для ПК
Telegram — это преимущественно мобильное приложение, но в целях разработки вы захотите установить его на том же компьютере, который вы используете для написания кода.Таким образом, вы можете быстро протестировать его, не разблокируя телефон каждый раз. И вы сможете скопировать и вставить ключ API своего бота Telegram прямо в текстовый редактор.
Пора получить ключ API!
Шаг 2. Пообщайтесь с BotFather, чтобы получить ключ API
Создание бота Telegram — новый процесс, потому что большая часть его сосредоточена вокруг вашего собственного взаимодействия с ботом Telegram. Этот бот называется BotFather. В настольном приложении Telegram вам нужно найти его имя пользователя и начать с ним разговор.
Дайте команду запуска BotFather, набрав / start
.
Вы увидите список команд, которые помогут вам создавать, редактировать и управлять ботами. Поскольку это ваш первый раз, вам понадобится / newbot
.
По сравнению с процессом создания бота Twitter, бота Mastodon или любого другого бота, с которым я экспериментировал, Telegram упрощает начальную настройку super . Думаю, это доказывает, каким отличным инструментом могут быть боты Telegram!
После подачи команды / newbot
вы можете выбрать имя и имя пользователя для своего бота.Имя — это то, что ваши пользователи будут видеть в списке контактов бота, а имя пользователя — это то, как они его найдут. Думайте об имени пользователя как о дескрипторе Twitter; он должен быть уникальным, и лучше всего, если он будет коротким и запоминающимся.
После этого вам будет предоставлен ключ API вашего бота. Ключ API — это то, как Telegram узнает, что код, который вы пишете, связан с этим конкретным ботом. У каждого бота есть собственный ключ API, и вы не должны делиться им с кем-либо, иначе они могут захватить вашего бота и заставить его совершить свои злые дела.
На этом мы завершаем наш чат с BotFather — по коду!
Шаг 3. Настройка драгоценных камней и каталога бота
Откройте терминал и выполните mkdir telegram-bot
. Это создаст новый каталог для файлов вашего бота. Лучше всего хранить их в одной папке, чтобы ими было легко управлять. Перейдите в каталог с cd telegram-bot
, а затем сделайте следующее:
touch Gemfile
touch bot.rb
atom.
Это создает два пустых файла: один для указания необходимых драгоценных камней, а второй — для размещения кода бота.Последняя команда открывает оба этих файла в Atom.
Щелкните Gemfile на боковой панели Atom и вставьте следующее:
источник 'https://rubygems.org' жемчужина 'telegram_bot'
Это указывает Bundler захватить интерфейс Ruby к API Telegram с rubygems.org.
Чтобы завершить настройку драгоценного камня, вернитесь к своему терминалу и введите bundle
. Вот что вы должны увидеть:
Это все, что нужно для настройки гема, теперь мы, наконец, переходим к коду.
Кодирование вашего первого бота Telegram
Фактический код, который будет постоянно работать на сервере, находится внутри bot.rb. Сейчас он пуст, но здесь мы собираемся связать гем Telegram, который мы только что собрали, и создать бота.
Это не так уж и много кода. Когда вы закончите, у вас будет
.В Telegram это то, что делает код выше:
Давайте посмотрим, что делает каждая часть кода, и напишем это по ходу дела.
требует 'telegram_bot' token = 'ТОКЕН' bot = TelegramBot.new (токен: токен)
(замените TOKEN на токен API, который вы скопировали из BotFather)
Ruby позволяет легко угадать, что будет делать код. Три строки выше добавляют функциональность бота Telegram к вашему файлу, а затем создают новый объект бота из класса TelegramBot, аутентифицированный вашим токеном, чтобы программа знала, куда отправлять данные.
Следующая часть — одна большая петля. Сначала это выглядит сбивающим с толку, но его легко разобрать.
bot.get_updates (fail_silently: true) do | message | сообщение | помещает "@ # {message.from.username}: # {message.text}" command = message.get_command_for (бот) сообщение.ответ сделать | ответить | case команда когда / start / i reply.text = "Все, что я могу сделать, это поздороваться. Попробуйте команду / greet." когда / приветствую / я reply.text = "Здравствуйте, # {message.from.first_name}. 🤖" еще reply.text = "Понятия не имею, что означает # {command.inspect}." конец ставит "отправка # {ответ.text.inspect} на @ # {message.from.username} " reply.send_with (бот) конец конец
Первая строка говорит боту продолжать прислушиваться к командам. И, когда он получает команду передать ее в сообщение переменной
. помещает строку
в журнал команды на ваш терминал, чтобы вы могли видеть, что происходит во время работы бота.
Ответные действия бота хранятся в операторе case. Входные данные оператора case проходят через переменную message
после того, как они были очищены методом gem’а get_command_for
.Текст ответа бота устанавливается в зависимости от сохраненной команды, а затем, наконец, отправляется с send_with
до перезапуска цикла.
Теперь вы можете найти своего бота в Telegram, отправить команды / start
и / greet
и посмотреть, как он работает.
Для этого сохраните изменения в Atom и запустите в терминале ruby bot.rb
. Пока этот терминал открыт и работает, ваш бот будет отправлять ответы!
Настройка вашего нового блестящего бота
Созданный вами бот хорош, но не очень интересен.Базовые биты есть, а это значит, что вы можете легко поменять их местами и расширить.
Части, на которые следует обратить внимание при настройке, — это строки when / command / i
и текст между кавычками в строках reply.txt
. Это входные данные, которые принимает ваш бот, и сообщения, которые он отправляет в качестве ответов.
Итак, если вы хотите сказать что-то другое в ответ на команду / greet
, вы должны изменить значение reply.text
под командной строкой greet (, когда / greet / i
).Вот вариант, который вы можете попробовать:
когда / greet / i greetings = ['bonjour', 'hola', 'hallo', 'sveiki', 'namaste', 'salaam', 'szia', 'halo', 'ciao'] reply.text = "# {greetings.sample.capitalize}, # {message.from.first_name}!"
Здесь я создал массив с несколькими разными способами поздороваться, а затем произвольно добавил один к сообщению, используя метод sample.
Превратите своего бота в нечто классное
Вы можете добавить к своему боту столько команд, ответов и функций, сколько захотите.По большей части это воображение и поиск в Google по ходу дела. Если вы хотите научиться многому, что применимо к этому боту, начните с «Изучите Ruby на сложном пути», чтобы разобраться в основах языка. Немного попрактиковавшись и положившись на StackOverflow, вы сможете:
- Подключите другие API-интерфейсы для извлечения данных из таких источников, как Airtable, Slack, RSS или Twitter. Вот где появляется действительно интересная функциональность — вы можете создать бота, который действует как диалоговый интерфейс для набора данных или функций, например, бота, который возвращает результаты поиска из Twitter или сообщения в Slack.
- Сохранение пользовательского ввода в базе данных. Вы можете создать бота Telegram, который предлагает автоматическую поддержку пользователям или отвечает на запросы и хранит их адреса электронной почты в базе данных. Гем Sequel упрощает создание, запись, редактирование и чтение баз данных.
- Создайте текстовое приключение. Colossal Cave Adventure, одна из первых игр для терминалов, была перенесена в Telegram в качестве бота. Проверьте это здесь и посмотрите источник здесь.
Если вам нужно вдохновение, вы можете прочитать исходный код ботов других людей и проверить список ботов Telegram — попробуйте выяснить, как они работают, и воссоздайте их на практике.
Запуск вашего бота 24/7
Прямо сейчас ваш бот работает в вашем терминале на вашем компьютере. Это нормально, пока вам не понадобится перезагрузить компьютер, когда у вас не отключится Wi-Fi или компьютер не перейдет в спящий режим. Когда это происходит, он завершает работу бота, и пользователи не получают от него ответа.
Процесс перемещения вашего бота из среды разработки (ваш компьютер, на котором вы использовали Atom для написания бота) в производственную среду (сервер) называется развертыванием.Есть несколько вариантов развертывания бота, но в обоих случаях мы собираемся начать с загрузки файлов в Bitbucket. Bitbucket позволяет использовать git, систему контроля версий, которая помогает безопасно вносить и отслеживать изменения в коде вашего бота. Загрузив файлы своего бота в Bitbucket, вы можете использовать Bitbucket как способ получить файлы бота, когда вы вошли в систему.
Зарегистрируйтесь в Bitbucket и создайте новый репозиторий.
Открыв терминал и находясь в том же каталоге, что и исходный код вашего бота, введите следующее:
git init
git add.
git commit -m 'начальная фиксация'
Теперь следуйте инструкциям Bitbucket после создания нового репозитория. Мои:
После ввода этих двух выделенных команд в моем терминале и предоставления моего пароля Bitbucket по запросу файлы загружаются. Поскольку ваш код находится в облаке, пора выбрать способ развертывания.
Развертывание с Raspberry Pi
На этом маленьком компьютере Raspberry Pi на моем столе находится куча ботовRaspberry Pi — отличное вложение, если вы планируете создавать и развертывать ботов — вы можете получить его всего за 7 долларов плюс стоимость SD-карты.Он потребляет очень мало энергии, поэтому вы можете держать его постоянно включенным и не беспокоиться о стоимости. Может возникнуть соблазн купить комплект с клавиатурой, мышью и чехлом, но все, что вам нужно, — это зарядное устройство USB, SD-карта, кабель Ethernet и сам компьютер. Вероятно, большинство из этих вещей уже есть в вашем офисе.
Развертывание с облачным сервером
Вам не обязательно владеть компьютером, на котором работает ваш бот, вы можете использовать память и мощность чужой машины для удаленного запуска бота.Популярные решения для развертывания в облаке включают Amazon Web Services (AWS), DigitalOcean и Heroku.
Из трех наиболее начальным уровнем являются DigitalOcean и Heroku. Щелкните здесь, чтобы получить учетную запись DigitalOcean с 10 долларами на счете — этого достаточно, чтобы запустить сервер в течение двух месяцев, пока вы его тестируете.
Когда вы зарегистрируетесь в DigitalOcean и создадите новую дроплет, вы узнаете, как подключиться к серверу через SSH и запустить консоль.
Отсюда это тот же процесс, что и на локальном компьютере, независимо от того, какой сервер вы используете.В конце концов, это просто терминал bash. Установив какой-то сервер, давайте перейдем к фактическому развертыванию.
Процесс развертывания
На новом сервере — будь то Raspberry Pi или облачный сервер, такой как Digital Ocean — вам нужно будет установить Ruby, Bundler и Git:
sudo apt-get update
sudo apt-get upgrade
curl -L https://get.rvm.io | bash -s stable --ruby
sudo apt-get install bundler
sudo apt-get install git
Затем создайте новый каталог для своего бота, перейдите в него и загрузите файлы из Bitbucket с помощью следующих команд:
ботов mkdir
ботов cd
git clone https: // [электронная почта защищена] / benjbrandall / telegram-bot.git
Не забудьте заменить приведенный выше URL (https: // benjbran…) на URL-адрес репозитория вашего бота на Bitbucket. Вы найдете всю команду клонирования через Bitbucket, поэтому вам не придется делать это вручную.
Затем введите bundle
, чтобы установить зависимости гема, а затем ruby bot.rb
, чтобы запустить бота постоянно.
Примечание. Если вы подключаетесь к серверу через SSH, вам необходимо запустить бот с помощью робота nohup ruby.rb &
, чтобы бот не прекращал работу после завершения сеанса SSH. Теперь вы можете закрыть окно терминала, зная, что ваш бот тихонько издает звуковой сигнал в фоновом режиме.