Понедельник , 23 декабря 2024
Разное / Создать бота в телеграмме: Создание бота для Telegram без навыков программирования — Selectel — статьи, вакансии, фото, контакты на vc.ru

Создать бота в телеграмме: Создание бота для Telegram без навыков программирования — Selectel — статьи, вакансии, фото, контакты на vc.ru

Содержание

Как легко создать бота в 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.

[Всего: 7   Средний:  5/5]

Как создать телеграм-бота | База знаний Selectel

С помощью ботов можно упростить себе задачу коммуникации с пользователями, создав для них умного помощника. Боты понимают текстовые команды и могут обращаться к API вашего вебсайта, сервиса или быть самостоятельным продуктом с уникальными услугами. Обычно, для создания бота требуется сервер, но в этой статье мы разберём подход, позволяющий обойтись без него. Он идеален при резких колебаниях количества запросов и прекрасно выдерживает пиковые нагрузки.
Настроить Телеграм-бота на Облачных функциях, используя официальный API и заготовленный нами пример, можно в 3 этапа:

  1. Запрограммировать логику работы Телеграм-бота.
  2. Зарегистрировать нового бота в Telegram.
  3. Связать бота и его логику воедино.

Запрограммировать логику работы Телеграм-бота

Чтобы упростить задачу, мы написали пример такого бота. Его исходный код доступен по ссылке github.com/selectel/cloud-telegram-bot. Он понимает команды:

  • /start с приветственным сообщением;
  • /sticker с ответом в виде стикера;
  • /getwebhook чтобы вы могли получить информацию о настройках вашего бота;
  • /setwebhook для настройки вашего бота, но об этом позже.

Пройдите следующие шаги с нашим примером бота, чтобы освоиться:

  1. Скачайте исходный код как архив («Clone or download» → «Download ZIP») и распакуйте его.
  2. Внутри должно быть:
    • «setup.py» с минимальным кодом, чтобы Python-окружение приняло содержимое папки за модуль для установки;
    • «requirements.txt» с описанием зависимостей;
    • «bot» — папка с исходным кодом нашего бота.
  3. Выделите все эти файлы и папки, а затем создайте из них новый ZIP-архив, тогда исходный код внутри архива не будет иметь лишних папок (как в случае с архивом, скачанным с github).
  4. Перейдите в Облачная ПлатформаФункцииСоздать функцию, подробнее.
  5. Задайте имя, например, «Bot».
  6. Загрузите ZIP-файл в качестве Исполняемого кода.
  7. Укажите Путь к файлу в архиве как «/bot/tele_bot.py».
  8. Укажите Вызываемую функцию в коде как «main».
  9. Добавьте переменную окружения «TOKEN», но пока не задавайте для неё значения, мы коснёмся этого на следующем этапе.
  10. Нажмите кнопку Сохранить и развернуть.
  11. Поставьте галочку, что нужна Публичная ссылка.

Теперь у нас есть API, реализующее логику ответов бота. Следующим этапом мы зарегистрируем его в Telegram.

Зарегистрировать нового бота в Telegram

Чтобы Telegram знал о существовании нашего бота, его нужно зарегистрировать. Для этого существует только один способ:

  1. Найдите бота @BotFather в Телеграм. Это официальный бот, созданный специально для управления ботами.
  2. Отправьте ему команду:

    /newbot
  3. @BotFather спросит вас, как вы назовёте вашего бота. Следующим сообщением отправьте его название, заканчивающееся на «_bot».

  4. Запишите полученный токен от @BotFather — это ключ для работы с Telegram API.

Теперь у нас API, регистрация бота в Telegram и его токен. Осталось связать это вместе.

Как связать бота и его логику воедино?

На этом этапе надо сделать так, чтобы бот знал токен пользователя, а Telegram знал, где его API:

  1. Найдите переменную окружения «TOKEN» в настройках функции. Мы оставили её пустой на первом этапе.
  2. Укажите в этой переменной токен вашего бота, который получили от @BotFather.
  3. Нажмите Сохранить и развернуть.

Далее нужно направить сообщения, которые пользователи отправляют в Telegram, нашему боту — в то API, которое для него создали.

Способ 1. Через бота @SelectelServerless_bot

  1. Найдите бота @SelectelServerless_bot в Телеграме.
  2. Введите команду:

    /setwebhook <Токен от вашего бота> <URL от облачной функции>
  3. Бот ответит тем, что получит из Telegram API. Если всё хорошо, это будет «true».

  4. Чтобы удостовериться в том, что всё корректно, отправьте команду:

    /getwebhook <Токен от вашего бота>
  5. В ответ должна прийти информация о webhook, в том числе указанный вами URL.

Способ 2. Из заготовленной формы

Откройте форму (или скопируйте её к себе в Облачное хранилище). Вставьте токен от вашего бота в первое поле, URL облачной функции во второе и нажмите на кнопку «Set Webhook». Произойдёт обращение к api.telegram.org, и вы увидите результат.

Примечание: может понадобиться наличие VPN.

Итог

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

Как создать чат-бот для Telegram — инструкция для администраторов каналов

Как регулярно вести Telegram-канал и не тратить на рутину с публикациями половину рабочего дня? Я подготовила краткое руководство для SMM-специалистов, которые ведут крупные каналы на постоянной основе, и для всех авторов, которые завели личные каналы.

Все начинается с ControllerBot. Это один из самых полезных инструментов для администраторов каналов в Telegram. Установите бот, потому что с его помощью удобно:

  • смотреть базовую статистику;
  • планировать отложенные посты;
  • форматировать текст;
  • добавлять визуальную составляющую к тексту;
  • прикреплять к постам реакции и встроенные URL-кнопки.  

Как настроить чат-бот

Перейдите в чат с ботом ControllerBot, нажмите /start. Затем задайте команду /addchannel и выполните простую пошаговую инструкцию по подключению бота.

Перейдите в диалог с ботом BotFather.

Нажмите /start и выберите команду /newbot.

Придумайте своему боту имя (оно будет отображаться в диалоговом списке) и юзернейм (уникальное имя, которое заканчивается на «bot» и пишется через @)

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

Готово — вы создали бота. Добавьте его в администраторы канала. И обязательно укажите свой город, чтобы бот настроил часовой пояс и смог управлять отложенными постами.

{«0»:{«lid»:»1573230077755″,»ls»:»10″,»loff»:»»,»li_type»:»em»,»li_name»:»email»,»li_ph»:»Email»,»li_req»:»y»,»li_nm»:»email»},»1″:{«lid»:»1596820612019″,»ls»:»20″,»loff»:»»,»li_type»:»hd»,»li_name»:»country_code»,»li_nm»:»country_code»}}

Истории бизнеса и полезные фишки

Как пользоваться чат-ботом

1.

Создать пост

Нажмите на команду /создать пост.

Затем выберите канал (в моем случае это Netpeak).

Поле отправки боту текстового сообщения, бот предложит вам несколько функций.

Воспользуйтесь привычными горячими клавишами для форматирования текста прямо в диалоговом окне:

  • жирный шрифт — «Ctrl+B»;
  • курсив — «Ctrl+I»;
  • залинковать ссылку — «Ctrl+K».

2. Добавить изображение

Нажмите на команду /прикрепить медиафайл и отправьте боту фото либо гифку (не обязательно сохранять изображение, можно его скопировать и вставить).

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

3. Добавить реакции к посту

Кликните по команде /добавить реакции и выберите эмоджи (не более шести на один пост, разделяя каждый через /). Посмотрите, как визуально улучшилось оформление поста.

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

4. Добавить URL-кнопки

Выберите команду /добавить URL-кнопки и отправьте боту текстовое сообщение со ссылками, разделенные дефисом -. Вот так это будет выглядеть.

После нажатия на кнопку подписчик попадет на указанный сайт.

5. Опубликовать пост

После подготовки поста нажимите «Далее».

Высветится меню с несколькими вариантами публикации:

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

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

6. Посмотреть статистику

Выберите команду «Статистика» и нажмите на название канала.

Бот покажет количество подписавшихся/отписавшихся пользователей за месяц и за неделю.
Готово! Теперь вы умеете самостоятельно создавать собственного бота в Telegram. Если возникнут вопросы, с радостью отвечу в комментариях.

{«0»:{«lid»:»1531306243545″,»ls»:»10″,»loff»:»»,»li_type»:»nm»,»li_name»:»name»,»li_ph»:»Имя»,»li_req»:»y»,»li_nm»:»name»},»1″:{«lid»:»1573230091466″,»ls»:»20″,»loff»:»»,»li_type»:»ph»,»li_name»:»phone»,»li_req»:»y»,»li_masktype»:»a»,»li_nm»:»phone»},»2″:{«lid»:»1573567927671″,»ls»:»30″,»loff»:»y»,»li_type»:»in»,»li_name»:»surname»,»li_ph»:»Фамилия»,»li_req»:»y»,»li_nm»:»surname»},»3″:{«lid»:»1531306540094″,»ls»:»40″,»loff»:»»,»li_type»:»in»,»li_name»:»domains»,»li_ph»:»Адрес сайта»,»li_rule»:»url»,»li_req»:»y»,»li_nm»:»domains»},»4″:{«lid»:»1573230077755″,»ls»:»50″,»loff»:»»,»li_type»:»em»,»li_name»:»email»,»li_ph»:»Email»,»li_req»:»y»,»li_nm»:»email»},»5″:{«lid»:»1575903646714″,»ls»:»60″,»loff»:»»,»li_type»:»hd»,»li_name»:»comment»,»li_value»:»Автоматический коммент: заявка из блога, без пользовательского комментария»,»li_nm»:»comment»},»6″:{«lid»:»1575903664523″,»ls»:»70″,»loff»:»»,»li_type»:»hd»,»li_name»:»lead_channel_id»,»li_value»:»24″,»li_nm»:»lead_channel_id»},»7″:{«lid»:»1584374224865″,»ls»:»80″,»loff»:»»,»li_type»:»hd»,»li_name»:»ip»,»li_nm»:»ip»},»8″:{«lid»:»1609939499483″,»ls»:»90″,»loff»:»»,»li_type»:»hd»,»li_name»:»post_id»,»li_nm»:»post_id»}}

Найти клиентов
в Telegram

Процесс создания простого бота Телеграм для отслеживания времени

Телеграм есть у каждого. Все мы пользуемся этим мессенджером каждый день — он удобен и прост в использовании, интуитивно понятен, безопасен, и, конечно, все мы любим стикеры. Кроме личной переписки мы используем и групповые чаты — с семьей, с друзьями и коллегами. Кроме нас, обычных пользователей, в telegram есть боты. Они создаются для автоматизации ответов. То есть бот реагирует на конкретные сообщения — команды и выполняет какие-нибудь действия.

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

Я, например, постоянно пользуюсь чат-ботом @vkmusic_bot_news. Это простой бот для поиска и прослушивания музыки. Отправляешь сообщение с названием композиции или именем автора, и бот выдает тебе варианты по твоему запросу. В примере я запросил композицию «show must go on» и получил несколько вариантов на выбор. Выбрав первый вариант я получил трек в следующем сообщении. Удобно, что можно прослушивать прямо в чате с ботом. Таким образом чат-бот может заменить стороннее приложение — проигрыватель на телефоне. Ищешь и сразу же слушаешь.

Таким образом мы подошли к выводу, что телеграм чат-боты довольно удобная и многофункциональная штука. Поэтому в этой статье и пойдет речь о написании простого чат-бота. Для примера я решил сделать трекер времени — простейший пример взаимодействия с telergram api.

Создание простого чат-бота

И так начнем.

Документацию можно почитать тут https://core.telegram.org/bots/api.

Для начала нужно создать — зарегистрировать самого бота в telegram. Ищем отца всех ботов @BotFather — тоже бот для регистрации ботов.

Пишем ему, что хотим создать своего чат-бота.

    /newbot

Следующей командой он просит придумать название. Так как мой бот будет трекать время — название соответствующее. Пишу:

timeTrackerBot

Следующим шагом нужно задать юзернейм для бота (будет использоваться для поиска @username). Условие: username должен заканчиваться на bot или _bot. Пишу:

my_time_tracker_bot

Готово! В ответе нам приходит токен — это значит, что мы зарегистрировали нового чат-бота.

Разработка

Для начала я решил посмотреть какие библиотеки предлагает нам интернет.

Оказалось вариантов не так мало. Тут можно ознакомится со всем списком предлагаемых вариантов.

Мой выбор пал на  TelegramBotApiBundle для Symfony.

Устанавливаем.

    composer require borsaco/telegram-bot-api-bundle

идем дальше.

Бандл поддерживает работу с несколькими ботами одновременно. Кроме того есть вариант отладки (отправка только разработчику) и работа через прокси. Для тестового примера нам много не нужно — убираем все лишнее.

    config/packages/telegram.yaml

Также я вынес токен в переменную APP_TELEGRAM_TOKEN в .env

Немного теории

Telegram api, можно сказать, работает в двух режимах: можно самим получать обновления с сервера через метод getUpdates(), либо настроить webHook. Первый метод хорош тем, что он предельно прост, но плох тем, что нужно самостоятельно постоянно опрашивать сервер на предмет обновлений. Вариант с webhook же позволяет не думать о том, как получить обновления, а сосредоточится на их обработке. В этом случае telegram будет сам отправлять обновления на url, который мы укажем.

Преимущество второго подхода очевидны)

Для регистрации Webhook делаем следующее:

    $bot = $botService->getBot('timeTracker');
    $bot->setWebhook(
    	[
    'url'=>'https://myWebSite.com/webhook'
    ]
    );

webhook в значении url — это роут, который мы сделаем немного позже. $botService — это объект сервиса Borsaco\TelegramBotApiBundle\Service\Bot, который можно инжектить в любом месте проекта.

Важно: telegram api поддерживает отправку только на https!

Теперь проверим наш Webhook: если отправить какое-нибудь сообщение нашему боту telegram пришлет нам вот такой набор данных в ответе:

    {
      "update_id": 21406673,
      "message": {
        "message_id": 24,
        "from": {
          "id": 701891111,
          "is_bot": false,
          "first_name": "aleksei",
          "language_code": "ru"
        },
        "chat": {
          "id": 701891111,
          "first_name": "aleksei",
          "type": "private"
        },
        "date": 1580672814,
        "text": "/help",
        "entities": [
          {
            "offset": 0,
            "length": 5,
            "type": "bot_command"
          }
        ]
      }
    }

Нас интересует часть с текстом сообщения. В данном случае видно, что я отправил боту «/help». Естественно он пока ничего не отвечает.

Наличие в ответе entities говорит о том, что сообщение было воспринято ботом как команда (все, что начинается со слеша и пишется латиницей, — это для telegram команда)

Создаем контроллер. Это будет входная точка для запросов от telegram api, куда будут приходить обновления.

Для удобства я всю логику вынес в сервис MessageProcessor, куда передаю строку, полученную от telegram.

Смысл прост — есть 4 команды: help, start, stop, report.

На help или на любое другое сообщение, не подпадающее под этот список, бот должен вернуть сообщение с перечнем доступных команд.

На каждую команду есть свое поведение.

Также есть 2 ситуации, когда ответ будет говорить пользователю, что данное действие запрещено в данный момент (пока трекер времени не остановлен — нельзя начать новый. Соответственно — пока нет активного, остановить тоже ничего нельзя).

Я добавил такие сущности:

    • User, у которого есть поля name, telegramId и коллекция timeLines,
    • TimeLine, у которой есть дата начала и дата конца: startedAt, stopedAt.

    То есть user может иметь несколько timelines (у которых есть время старта и время остановки).

    Нам приходит json строка, первое что я делаю — это декодирую строку и получаю объект:

      $response = \json_decode((string)$telegramUpdate);

    Дальше проверяю есть ли такой пользователь в базе (данные о пользователе, написавшем боту берутся из response->message->from). Если пользователя нет — создаем.

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

      $messageText = mb_strtolower($response-&gt;message-&gt;text);
      $messageText = str_replace([&rsquo;\\&rsquo;, &rsquo;/&rsquo;], &rsquo;&rsquo;, $messageText);

    Теперь проверяем полученную команду — входит ли она в список команд, которые мы можем обработать. И теперь на основании того, что нам прислали отправляем ответ.

      $messageCommand = $this-&gt;isSupports($messageText) ? $messageText : false;

    Если это команды start или stop — создаем TimeLine для этого пользователя или завершаем текущий соответственно и сообщаем пользователю об этом.

    Если это report — подсчитываем время во всех timeline за сегодня и отправляем суммарное количество часов и минут пользователю.

    Сообщения отправляется методом sendMessage, который принимаем массив параметров. Обязательные параметры: ’chat_id’ и ’text’. Полный список команд можно посмотреть здесь .

    Так как это тестовый пример, я ограничился простым switch / case для выбора команд.

      switch ($messageCommand) {
        case self::HELP_COMMAND :
           $this->bot->sendMessage(['chat_id' => $user->getTelegramId(),      'text' => self::ANSWERS[self::HELP_COMMAND]]);
           break;
        case self::START_COMMAND :
           if ($this->timelineService->doesActiveExist($user)) {
              $this->bot->sendMessage(['chat_id' => $user->getTelegramId(), 'text' => self::BAD_ANSWERS['existNotStoppedTimeLine']]);
              break;
           }
           $this->telegramService->startTimeForUser($user);
           $this->bot->sendMessage(['chat_id' => $user->getTelegramId(), 'text' => self::ANSWERS[self::START_COMMAND]]);
           break;
        case self::STOP_COMMAND :
           if ($this->timelineService->doesActiveExist($user)) {
              $this->bot->sendMessage(['chat_id' => $user->getTelegramId(), 'text' => self::ANSWERS[self::STOP_COMMAND]]);
              break;
           };
           $this->bot->sendMessage(['chat_id' => $user->getTelegramId(), 'text' => self::BAD_ANSWERS['timeLineNotFound']]);
           break;
        case self::REPORT_COMMAND :
           $timeForToday = $this->timelineService->getTodayTotalByUser($user);
           $this->bot->sendMessage(['chat_id' => $user->getTelegramId(), 'text' => \sprintf(self::REPORT_COMMAND, $timeForToday)]);
           break;
        default:
           $this->bot->sendMessage(['chat_id' => $user->getTelegramId(), 'text' => self::ANSWERS[self::HELP_COMMAND]]);
      }

    Общий вид сервиса:

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

    Вывод

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

    👉 Настройка чат-бота в Telegram — кейсы

    Max Zakhozhiy

    5 декабря | 2018

    В предыдущей статье про настройку чат-ботов я уже упоминал про некоторые из сервисов, которые можно использовать для настройки чат-бота как в Facebook так и в Telegram.

    Я протестировал некоторые из них и выделил плюсы и минусы каждого.

    Сервисы:

    Chatfuel — отлично подходит для создания чат-бота в Facebook. Есть весь необходимый инструментарий, аналитика, возможность запуска брод-сообщений, отслеживание пользователей и так далее. Но версия для Telegram довольно скупая, к тому же постоянно вылазит копирайт chatfuel — не удобно.

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

    Manynbot — работает только в Telegram. Довольно удобная настройка, можно задать разные варианты отработки. Копирайт выскакивает редко, но он есть. На письма с вопросом о платной версии и отключении копирайта никто не отвечает.

    Как настроить чат-бот в Telegram

    В Telegram для создания чат-бота есть свой бот — @Botfather, в котором вам нужно в обязательном порядке создать своего бота. Тут вы задаете ему имя, описание, фото профиля.  Процесс создания проходит интуитивно, выбираете нужную команду и вводите информацию:

    Тут же после создания бота Botfather выдает вам токен, который вы можете использовать в любом сервисе для подключения и управления своим ботом.

    Рассмотрим вариант создания на примере Manybot (мне он понравился больше всех).

    Добавляем бота в свой Telegram и в первом меню нажимаем «Добавить нового бота»:

    Высылаем в manybot наш токен, который мы получили от Botfather:

    Процесс описания можно пропустить, например мне он сейчас не нужен.  Наш бот создан, теперь переходим непосредственно к настройке.

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

    Теперь уже в нашем боте, переходим в меню «пользовательские команды» и задаем команды, при использовании которых будут происходить нужные действия.

    Например, я хочу, чтобы пользователю выскакивал список наших услуг. Я задаю команду /services , после этого креплю ее под кнопку меню. В окне после отправки команду пишем сообщение, которое будет выскакивать при использовании команды и сохраняем.

    Теперь нам надо завести команду под меню. Нажимаем на кнопку «добавить пункт меню», выбираем команду, для которой задаем кнопку, и вводим название пункта меню:

    Теперь в нашем боте есть пункт меню. Можно добавить дополнительные пункты меню таким же образом, чтобы пользователю было удобнее. Дополнительно к чат-боту можно заняться продвижением в соцсетях.

    Выводы: для создания Telegram-бота можно использовать любой сервис, который вам покажется более удобным. Главное, перед созданием задать себе вопрос — действительно ли вам нужен чат-бот? Если да — вперед!

    Создаем бота для Telegram

    В рамках данной статьи я расскажу о том, как быстро и легко написать программу-бота для популярного мессенджера Telegram. Писать бота мы будем на языке Python, параллельно изучая его основы. Договоримся, что вы используете Linux в качестве операционной системы, либо знаете как выполнить аналоги команд в Windows.

    Установка необходимых библиотек

    Нам понадобятся следующие библиотеки и программы:

    • pip — менеджер пакетов для Python
    • python — интерпретатор языка
    • virtualenv — виртуальное окружение
    • telebot — обертка над telegram API для языка Python

    Теперь откроем консоль и наберем несколько команд. Первым делом загрузим менеджер пакетов для питона и виртуальное окружение, внутри которого мы будем устанавливать все остальные пакеты, чтобы не засорять систему и не порождать конфликтов с другими проектами. Также скачаем проект telebot, который носит название pyTelegramBotAPI.

    sudo apt-get install python-pip sudo pip install pyTelegramBotAPI sudo pip install virtualenv

    Следующая команда создаст в вашей директории новую директорию venv, в которой будет хранить все локальные библиотеки. Подробности про виртуальные окружения можно прочитать по адресу: http://docs.python-guide.org/en/latest/dev/virtualenvs/ Можно работать и без виртуального окружения, но тогда убедитесь, что устанавливаемые вами библиотеки не конфликтуют с другими библиотеками в системе (например, могут сломаться некоторые программы, заточенные под старые версии пакетов).

    virtualenv venv

    После чего нам потребуется переместиться внутрь виртуального окружения, где можно будет подгружать все необходимые пакеты для проекта.

    source venv/bin/activate

    Создание Telegram-бота

    Начнем с создания простого бота для Telegram. Чтобы наш бот функционировал, нужно первым делом его создать. Для этого в телеграме есть специальный мета-бот BotFather (@BotFather). Добавьте его через поиск в вашем клиенте телеграмма. Список его команд можно получить, написав в чате с ним команду /help. Для создания нового бота нужно написать команду /newbot и в следующем сообщении передать название бота (должно заканчиваться словом bot). В ответ вам придет сообщение с API токеном — он понадобится нам для создания соединения с телеграммом.

    Создайте файл simplebot.py со следующим содержанием:

    # -*- coding: utf-8 -*- import telebot bot = telebot.TeleBot("") @bot.message_handler(commands=['help', 'start']) def send_welcome(message): msg = bot.send_message(message.chat.id, 'Привет! Я codex_bot!') @bot.message_handler(commands=['auth']) def send_auth(message): pass bot.polling()

    Код довольно интуитивен, поясним только основные идеи. Когда пользователь будет вводить команды /start и /help — выполнится функция send_welcome, которая отправит пользователю в чат сообщение с приветствием. При вводе /auth пока ничего происходить не будет.

    Запустите бота командой:

    python simplebot.py

    Теперь вы можете добавить своего бота в чат телеграмм и пообщаться с ним. Много полезных функций можно найти в документации telegram. Например, если вы хотите изменить описание, которое будут видеть пользователи при добавлении вашего бота в чат, вы можете написать @botfather следующую команду:

    /setdescription

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

    /setcommands

    Выберите бота из списка и в следующем письме введите перечень команд в формате:

    команда1 - Описание команды команда2 - Еще одно описание команды

    Этих знаний достаточно, чтобы уже сейчас запустить своего бота. О том как сделать его чуточку полезнее, читайте в продолжении.

    Пошаговая инструкция создания чат-бота

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

    Мессенджер владельца цветочной лавки стал разрываться от количества запросов. На обработку каждой заявки уходило много времени: необходимо было собрать всю информацию, ответить на вопросы, рассказать про ассортимент, зафиксировать заявку в таблице Excel, передать информацию продавщице в лавке, забрать букет на автомобиле и доставить по адресу. Василий не справлялся с этим потоком, и потенциальные клиенты, которым он просто не успел ответить, так и не оформили заказы.

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

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

    Первый шаг: регистрация и «вербовка» агента

    Для примера с цветочной лавкой за 15 минут создадим простого бота, который спросит имя заказчика, желаемый вариант букета и адрес доставки. Для этого воспользуемся онлайн-сервисом DialogFlow от Google — он простой и позволяет создать интерактивного чат-бота без особых познаний в программировании.

    На главной странице сервиса нужно нажать кнопку SIGN UP FOR FREE и пройти регистрацию.

    После этого откроется страница, где и будет происходить вся магия.

    Недолго думая, жмем на Create Agent. Агент — это наша «рабочая лошадка», которую мы будем обучать общению с людьми.

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

    На экране редактирования агента откроются настройки и дополнительные панели.

    В правой части экрана можно протестировать своего чат-бота: пообщаться и посмотреть, как он работает. Попробуйте написать «Привет!» или «Здравствуй» и увидите, что бот уже знает, как обрабатывать подобные сообщения.

    Здесь важно знать, что USER SAYS — это то, что написали вы, а DEFAULT RESPONSE — то, что ответил чат-бот. Остальные пункты станут понятны после дальнейшего изучения DialogFlow.

    По центру основного экрана есть список из двух пунктов: Default Fallback Intent и Default Welcome Intent. Intent — это короткие сценарии общения по типу «Сообщение от человека — ответ бота». Здесь можно установить дополнительные настройки: контекст, события, параметры и пр.

    Немного о каждой из них.

    Default Fallback Intent нужен для случаев, когда ни один другой Intent (короткий сценарий) не подошел под запрос человека. Например, клиент написал в чат «абракадабру» или что-то совсем не запланированное. Реакцию бота на этот случай можно настроить в разделе Responses.

    Default Welcome Intent — это сценарий открытия диалога с ботом. Данный Intent стартует ровно в тот момент, когда человек впервые запускает бота (в Telegram — командой /start) или в очередной раз приветствует его («Привет» или «Здравствуй»). Кстати, по умолчанию агент не знает приветствий «Добрый день/утро/вечер». Рекомендуем добавить их в разделе Training phrases.

    Любой ответ в разделе Responses можно отредактировать. Последний пункт, Enter a text response variant, предлагает ввести свой вариант ответа. Нажмите на этот текст, чтобы появился курсор ввода, и наберите фразу. Добавьте 2-3 новых варианта, чтобы разнообразить фразовый запас агента.

    Если уже известно, в каких мессенджерах будет работать ваш чат-бот, рекомендуем сразу настроить интеграцию в разделе Integrations в левом меню.

    Здесь открывается таблица из всевозможных платформ, для которых можно написать своего бота. Допустим, в случае с Василием и цветочной лавкой — это Telegram. Чтобы в самом мессенджере появился наш бот, нужно создать его «Telegram-оболочку». Для этих целей используем канал @BotFather, который поможет создать бота пошагово. В конце создания мы получаем token, который нужен здесь:

    Запускаем кнопкой START и закрываем это окно, нажав на CLOSE x. Это важно: все другие варианты выхода из этого окна отменят интеграцию.

    Второй шаг: сценарий общения

    Как может выглядеть диалог человека с ботом? В данном случае предполагаем, что у потенциального покупателя есть намерение купить цветы. Если это не так, то лучше, если человек узнает сразу, что бот не умеет ничего другого. Добавим в Default Welcome Intent второй ответ с фразой: «Я чат-бот цветочной лавки Василек. С моей помощью вы можете заказать цветы с доставкой по адресу. Как к вам обращаться?». Вопрос в текст добавлен не просто так, об этом чуть позже.

    Заходим в Default Welcome Intent и ниже в разделе Responses («Ответы») нажимаем на кнопку ADD RESPONSES, выбираем в выпавшем меню Text Response.

    В новой панели Responses добавляем текст. В результате должно получиться, как на скриншоте ниже:

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

    Создадим новый Intent, который будет связан с Default Welcome Intent. Для этого нужно навести курсор мыши на пункт Default Welcome Intent на экране со списком Intents и нажать на Add follow-up intent. В появившемся списке выбрать первый пункт, Custom (с остальными можно поиграться позже).

    Появится новый Intent. На экране это выглядит так:

    Открываем его. Первый раздел, Contexts, необходим для того, чтобы получать и передавать собранные данные в процессе диалога. К этому разделу мы вернемся позже.

    Переходим к тренировке агента возможным вариантам ответа. Жмем на ADD TRAINING PHRASES в разделе Training phrases.

    Я не буду составлять сотню вариантов ввода для этого примера. В реальной жизни рекомендую устроить мозговой штурм с коллегами и придумать минимум 15 способов представиться. После наполнения вариантами ответа экран с тренировочными фразами у меня выглядит так:

    Теперь агенту нужно в тексте указать, где в ответе клиента искать имя. Выделяем мышкой нужную область текста фразы и в меню выбираем подходящий вариант параметра (или переменной на языке программистов), в который запишется имя покупателя. Желательно использовать подходящие по смыслу названия параметров. В нашем случае для имени лучше всего подходит given-name.

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

    Теперь, если клиент написал похожий на этот шаблон текст, чат-бот распознает имя и сохранит его в переменной given-name. Неплохо для начала. Дальше интереснее!

    Настало время ответить на сообщение. По нашему сценарию, после получения имени заказчика бот должен предложить два варианта на выбор: букет из 3 роз и букет из 5 роз.

    Переходим к разделу Responses и жмем на ADD RESPONSE.

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

    Многие современные мессенджеры, такие как Facebook Messenger или Telegram, позволяют ботам добавлять к своим сообщениям кнопки или меню. В каждом мессенджере это делается по-своему, поэтому DialogFlow подсказывает, какие типы ответов могут быть созданы в зависимости от того, какая платформа выбрана.

    Выбираем закладку Telegram и жмем ADD RESPONSES. В появившемся меню выбираем Quick Replies. Появится маленькая панель с двумя полями ввода. В верхнем поле вводим текст «$given-name, какой букет хотите приобрести?» Это сообщение появится вместе с кнопками выбора варианта ответа. Параметр $given-name автоматически заменится на имя покупателя, в чем вы убедитесь позже при тестировании.

    Далее введем в каждой строке варианты ответов пользователя. В нашем случае это будут фразы «Букет 3 розы» и «Букет 5 роз». Чтобы появилась новая строка для следующего варианта, нажмите на клавишу Enter. Получается такая картина:

    Нажмите синюю кнопку SAVE вверху экрана, чтобы сохранить настройки.

    Если вы ранее настроили интеграцию с Telegram-ботом, то уже на этом этапе можно провести тестирование. Диалог должен оборваться ровно в тот момент, когда вы выбираете тип букета.

    Чтобы чат-бот уточнил адрес доставки, создадим новый Intent, продолжающий наш вопрос по букетам. Для этого раскрываем список Default Welcome Intent и жмем на Add follow-up intent напротив Default Welcome Intent — custom. В результате экран Intents выглядит так:

    Из списка не очень понятно, что есть что. Легко запутаться и потратить много времени. Давайте зайдем в каждый Intent и переименуем его, чтобы получилось так:

    Теперь другое дело. Использовать русские буквы в данном случае не рекомендуется, так как могут возникать разные ошибки.

    Заходим в новый Intent — Tovar. Для начала разберемся с разделом Context. Там находится автоматически созданный контекст DefaultWelcomeIntent-custom-followup — название формируется из названия шага и суффикса -followup.

    В процессе разговора данный контекст придет из предыдущего шага, где пользователь написал свое имя. В этом контексте хранится переменная $given-name, которая может пригодиться нам на каждом следующем шаге — чтобы обратиться по имени и задать вопрос или для окончательного формирования заказа и отправки сообщения с полной информацией о нем. Поэтому мы должны убедиться, что данный контекст не исчезнет, а будет передан дальше по всем шагам, вплоть до последнего. В текстовом поле, где написано Add output context, введите DefaultWelcomeIntent-custom-followup.

    Переходим к тренировочным фразам. Так как на предыдущем шаге пользователь мог ввести «Букет из 3 роз» и «Букет из 5 роз», то эти фразы мы добавляем в первую очередь. Есть вероятность, что покупатель захочет «151 фиалку». Этот случай рассмотрим чуть позже.

    После добавления новых вариантов ответа список тренировочных фраз может выглядеть примерно так:

    При добавлении вариантов DialogFlow обнаружил шаблонные слова и пометил их цветом. Сервис самостоятельно решил, как их воспринимать и в какую переменную записать эти данные. Нам это не подходит, потому что в переменную попадут значения «3», «пяти», «три» и пр. Но Василию хорошо бы предусмотреть расширение ассортимента в будущем и знать, какие именно цветы хочет клиент. Поэтому нашему агенту нужно научиться вычленять из множества слов те шаблоны, которые соответствуют нашим понятиям о букетах.

    Чтобы научить агента такому нехитрому делу, существуют Entities в левом меню. Перейдем туда и создадим новый Entity.

    Назовем его bouquet (по-русски нельзя, потому что название будет использоваться в качестве переменной в дальнейшем). Ниже введем сначала оригинальное название букета — «Букет из 5 роз», а справа введем все возможные синонимы. То же самое проделаем для «Букет из 3 роз». У меня получилось так:

    Если у Василия ассортимент букетов будет увеличиваться, то он может добавить новую позицию в этом же разделе.

    Мы рассматриваем самый простой сценарий, когда ассортимент состоит из двух позиций. Если же позиций сотни, то лучше разбивать фразы на составные части. Например, «букет из 11 тюльпанов» можно разбить на «букет» (может быть «корзинка», «связка»), на «11» (любое другое число цветов) и на «тюльпанов» (может быть «роз», «лилий» и пр.). Каждая часть должна записываться в свою переменную.

    Ниже в разделе Action and parameters предлагаю поставить галочку напротив новой переменной в столбце REQUIRED. Это означает, что, пока в переменную не попадут необходимые данные, пользователь не перейдет к следующему шагу. В этой же строке в столбце PROMPTS есть опция для уточняющих фраз, на случай если с первого раза добиться желаемого ответа не получилось.

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

    Теперь создаем новый Intent для ввода адреса по тому же принципу, что описан выше. Проделайте все самостоятельно и сверьтесь с тем, что получилось у меня:

    На последнем шаге отобразим текст сообщения с деталями заказа. Для этого в разделе Action and parameters необходимо описать переменные из присланных контекстов.

    Вручную вписываем given-name в столбце PARAMETER NAME, далее вписываем @sys.given-name в столбце ENTITY. В столбце VALUE нужно указать значение переменной given-name из контекста DefaultWelcomIntent-followup. Ввести нужно такую строчку: #DefaultWelcomIntent-followup.given-name.

    То же самое необходимо проделать для переменной bouquet (см. результат на скриншоте выше). Также не забудьте на всякий случай указать PROMPTS.

    В разделе Responses мы, наконец, отправим пользователю финальное сообщение и завершим диалог.

    Включите опцию Set this intent as end of conversation — именно она даст чат-боту знать, что диалог с пользователем завершился. Сохраняем последний Intent и проверяем работу чат-бота.

    Вот такой диалог с ботом получился у меня:

    Вы тоже можете протестировать получившегося бота в Telegram — @VaselekLavka_bot.

    После того как бот договорится с покупателем, нам нужно получить готовый заказ на почту — это уже работа для программиста. Однако не стоит беспокоиться: это не самая сложная задача для знающего человека. Нужно будет написать специальный серверный скрипт, который примет POST-запрос из сервиса DialogFlow и получит необходимые данные для последующей обработки. От сложности обработки будет зависеть продолжительность работы программиста.

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

    Как создать чат-бота Telegram

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

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

    Если у вас уже есть бот, пропустите первый абзац и посмотрите следующий раздел.

    Как создать нового бота для Telegram

    Откройте мессенджер Telegram, войдите в свою учетную запись или создайте новую.

    Шаг 1. Введите @Botfather во вкладке поиска и выберите этого бота.

    Обратите внимание, у официальных ботов Telegram рядом с их именем есть синяя галочка

    Нажмите «Пуск», чтобы активировать бота BotFather.

    В ответ вы получите список команд для управления ботами.

    Шаг 2 . Выберите или введите команду / newbot и отправьте ее.

    Шаг 3. Выберите имя для своего бота — ваши подписчики увидят его в разговоре. И выберите логин для своего бота — бота можно будет найти в поиске по логину. Имя пользователя должно быть уникальным и заканчиваться словом «бот».

    После выбора подходящего имени для своего бота — бот создан. Вы получите сообщение со ссылкой на вашего бота t.me / , рекомендации по настройке изображения профиля, описания и списка команд для управления вашим новым ботом.

    Для подключения бота к SendPulse необходим токен. Скопируйте значение токена и найдите дополнительную информацию о подключении бота к SendPulse в последнем разделе этой статьи.

    Как найти токен для существующего бота

    Шаг 1. Перейдите к боту @BotFather и отправьте команду / token .

    Вы увидите кнопки со всеми созданными вами ботами.

    Шаг 2. Выберите тот, для которого вам нужен токен, чтобы вы могли подключить его к Sendpulse.

    Скопируйте значение токена.

    Как подключить бота к SendPulse

    Перейдите в раздел «Чат-боты» в своей учетной записи SendPulse. Если вы впервые заходите на эту страницу и не подключили чат-ботов, нажмите кнопку «Подключить каналы». Если вы уже подключали ботов раньше — перейдите на вкладку «Основные» и нажмите кнопку «Управление ботами».

    Затем выберите Telegram и нажмите кнопку «Включить Telegram».

    Введите свой токен от нужного бота и нажмите «Подключиться».

    В следующем окне нажмите кнопку «Подписаться».

    Вы будете перенаправлены в приложение Telegram, нажмите кнопку «Пуск», и вы будете подписаны на своего бота.

    Поздравляем! Вы успешно добавили своего чат-бота в SendPulse.

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

    Обратите внимание, существующие подписчики не импортируются в аудиторию вашего чат-бота SendPulse. После подключения бота вы можете собирать подписчиков с помощью виджета веб-сайта или делиться ссылкой на своего бота t.me/ напрямую.

    Подключите своего бота Telegram

    Последнее обновление: 27. 11.2020

    Пошаговое руководство по созданию вашего первого бота Telegram

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

    Многие отрасли переводят обслуживание клиентов на системы чат-ботов. Это связано с огромным падением стоимости по сравнению с реальными людьми, а также благодаря надежности и постоянной доступности. Чат-боты обеспечивают определенную поддержку пользователей без существенных дополнительных затрат.

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

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

    Telegram — одна из самых популярных сегодня платформ обмена мгновенными сообщениями, поскольку она позволяет хранить сообщения в облаке, а не только на вашем устройстве, и может похвастаться хорошей многоплатформенной поддержкой, так как Telegram можно использовать на Android, iOS, Windows и просто о любой другой платформе, которая может поддерживать веб-версию. Создать чат-бота в Telegram довольно просто и требуется несколько шагов, которые займут очень мало времени. Чат-бот может быть интегрирован в группы и каналы Telegram, а также работает сам по себе.

    [Прочтите: руководство разработчика по созданию чат-бота WhatsApp]

    В этом уроке мы создадим бота Telegram, который предоставит вам изображение аватара из Adorable Avatars. В нашем примере мы создадим бота с помощью Flask и разместим его на бесплатном сервере Heroku.

    Для выполнения этого руководства вам понадобится Python 3, установленный в вашей системе, а также навыки программирования на Python. Кроме того, хорошее понимание того, как работают приложения, было бы хорошим дополнением, но не обязательным, так как мы подробно рассмотрим большую часть того, что мы представляем.Вам также необходимо установить Git в вашей системе.

    Конечно, для этого учебника также требуется учетная запись Telegram, которая бесплатна. Вы можете зарегистрироваться здесь. Также требуется учетная запись Heroku, и вы можете получить ее бесплатно здесь.

    Оживление вашего телеграмм-бота

    Чтобы создать чат-бота в 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, которую мы создадим позже"
      

    А теперь вернемся к нашему приложению.py и пошагово пройдитесь по коду:

     
    из фляги импорт фляги, запрос
    телеграмма импорта
    из telebot.credentials import bot_token, bot_user_name, URL
      
      глобальный бот
    глобальный ТОКЕН
    TOKEN = bot_token
    bot = telegram.Bot (токен = ТОКЕН)
      

    Теперь у нас есть объект бота, который будет использоваться для любого действия, которое мы требуем от бота.

     
    app = Flask (__ имя__)
      

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

    В нашем примере функция маршрута отвечает на URL-адрес, который в основном имеет вид / {token} , и это URL-адрес, который Telegram будет вызывать для получения ответов на сообщения, отправленные боту.

      @ app.route ('/ {}'. Format (TOKEN), methods = ['POST'])
    def response ():
       
       update = telegram.Update.de_json (запрос.get_json (force = True), бот)
    
       chat_id = update.message.chat.id
       msg_id = update.message.message_id
    
       
       текст = update.message.text.encode ('utf-8'). decode ()
       
       print ("получил текстовое сообщение:", текст)
       
       если 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", "_", текст)
               
               url = "https://api.adorable.io/avatars/285/{}.png" .format (text.strip ())
               
               
               bot.sendPhoto (chat_id = chat_id, photo = url, reply_to_message_id = msg_id)
           кроме исключения:
               
               бот.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 ():
        
        
        s = бот.setWebhook ('{URL} {HOOK}'. format (URL = URL, HOOK = TOKEN))
        
        если s:
            верните "webhook setup ok"
        еще:
            вернуть "сбой настройки веб-перехватчика"
      

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

      @ app.route ('/')
    def index ():
        возвращаться '.'
    если __name__ == '__main__':
        
        
        app. run (thread = True)
      

    Давайте посмотрим на полную версию приложения.py:

      импорт ре
    из фляги импорт фляги, запрос
    телеграмма импорта
    из 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 ():
       
       update = telegram.Update.de_json (request.get_json (force = True), бот)
    
       chat_id = обновить.message.chat.id
       msg_id = update.message.message_id
    
       
       текст = update.message.text.encode ('utf-8'). decode ()
       
       print ("получил текстовое сообщение:", текст)
       
       если 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", "_", текст)
               
               url = "https://api.adorable.io/avatars/285/{}.png" .format (text.strip ())
               
               
               bot.sendPhoto (chat_id = chat_id, photo = url, reply_to_message_id = msg_id)
           кроме исключения:
               
               бот.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"
       еще:
           вернуть "сбой настройки веб-перехватчика"
    
    @ app.route ('/')
    def index ():
       возвращаться '.'
    
    
    если __name__ == '__main__':
       приложение.запустить (резьбовой = True)
      

    Это последний фрагмент кода, который вы напишете в нашем руководстве. Теперь мы можем перейти к последнему шагу, запустив наше приложение на Heroku.

    Запустите наше приложение на Heroku

    Нам нужно кое-что, прежде чем мы создадим наше приложение.

    Heroku не может знать, какие библиотеки использует ваш проект, поэтому мы должны сообщить ему об этом с помощью файла requirements.txt — распространенная проблема заключается в том, что вы неправильно написали требования, поэтому будьте осторожны — чтобы сгенерировать файл требований с помощью pip:

      pip freeze> требования.текст
      

    Теперь у вас есть готовый файл требований.

    Теперь вам нужен Procfile , который сообщает Heroku, где запускается наше приложение, поэтому создайте файл Procfile и добавьте следующее:

      веб-сайт: gunicorn app: app
      

    Шаг возврата: вы можете добавить файл .gitignore в свой проект, чтобы неиспользуемые файлы не загружались в репозиторий.

    Создайте новое приложение на панели управления Heroku.Как только вы это сделаете, он направит вас на страницу Deploy . Затем откройте вкладку Settings в новом окне и скопируйте домен приложения, который будет примерно таким: https://appname.herokuapp.com/ , и вставьте его в переменную URL внутри credentials.py .

    Теперь вернитесь на вкладку Deploy и выполните шаги:

    Примечание. Пользователи Windows и macOS могут выполнить действия, описанные здесь.

    Войти в Heroku:

      $ heroku войти
      

    Обратите внимание, что этот метод иногда застревает в , ожидая входа в систему , если это произойдет с вами, попробуйте войти, используя:

      $ heroku логин -i
      

    Инициализировать репозиторий Git в нашем каталоге:

      $ git init
    $ heroku git: remote -a {имя-проекта-героя}
      

    Развернуть приложение:

      $ git add. $ git commit -m "первая фиксация"
    $ git push heroku мастер
      

    На этом этапе вы увидите прогресс строительства в вашем терминале. Если все прошло нормально, вы увидите что-то вроде этого:

      пульт: -----> Запуск ...
    удаленный: выпущена 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", "_", текст)
               
               url = "https: // api.adorable.io/avatars/285 / {}. png ".format (text.strip ())
               
               
               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
    из telebot.credentials import bot_token, bot_user_name, URL
      

    Затем просто вызовите его внутри кода ответа () .

      def response ():
       
       update = telegram.Update.de_json (request.get_json (force = True), бот)
    
       chat_id = update. message.chat.id
       msg_id = update.message.message_id
    
       
       текст = update.message.text.encode ('utf-8'). decode ()
       
       print ("получил текстовое сообщение:", текст)
       
       reply = generate_smart_reply (текст)
       бот.sendMessage (chat_id = chat_id, text = reply, reply_to_message_id = msg_id)
      

    Теперь ваш бот может работать так, как вы хотите — вперед и создайте следующую большую вещь!

    Блог инженеров Toptal — это центр для углубленных руководств по разработке и объявлений о новых технологиях, созданных профессиональными инженерами-программистами в сети Toptal. Вы можете прочитать оригинал статьи, написанной Али Абдель Аалом здесь. Следите за блогом Toptal Engineering в Twitter и LinkedIn.

    Читать далее: Как добиться успеха на рынке труда после коронавируса, по словам старшего вице-президента Vice

    Создайте бота Telegram на Go за 9 минут | Франсуа Паупье | Запуск

    1.

    Зарегистрируйте своего бота в Telegram

    Во-первых, вам нужно сообщить Telegram, что вы хотите зарегистрировать бота. Для этого отправьте BotFather команду / newbot .Вы получаете обратно жетонов . Мы будем использовать его в нашем коде для аутентификации нашего приложения на серверах Telegram. Смотрите скриншот ниже. Храните свой токен в надежном месте — , т. Е. , не передавайте его в вашу систему контроля версий.

    Когда вы создаете бота, BotFather генерирует и возвращает токен для доступа к HTTP Bot API.

    Чтобы дважды проверить работу создания бота, вы можете запросить конечную точку / getMe API Telegram.

    Если Telegram зарегистрировал вашего бота, вы получите краткую сводку его характеристик в формате JSON в ответ на ваш запрос / getMe.

    Вы дали своему боту крутое изображение профиля, а также точное описание того, что он делает? Милая! Теперь давайте подробнее рассмотрим, как реализовать поведение вашего бота для взаимодействия с пользователями.

    2. Обработка запросов пользователей

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

    Прежде чем переходить непосредственно к коду, давайте рассмотрим, что происходит, когда пользователь взаимодействует с вашим ботом в Telegram.

    Telegram — это облачная служба обмена сообщениями.Когда вы отправляете кому-то сообщение в Telegram, серверы Telegram получают ваше сообщение и отправляют его в соответствующий чат. Смотрите мой GIF ниже:

    Упрощенное представление об облачной природе службы обмена сообщениями Telegram. Анимированная версия.

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

    Статическая версия

    Обмен сообщениями в облаке позволяет вам получать доступ к чату с разных устройств. Опираясь на предыдущие концепции, давайте посмотрим, что происходит, когда вы отправляете сообщение боту в Telegram.

    Каждый раз, когда вы отправляете сообщение боту, Telegram уведомляет URL-адрес веб-перехватчика о том, что для вашего бота доступно обновление. Затем ваш обработчик обрабатывает запрос пользователя и отправляет ответ в Telegram. В конечном итоге Telegram доставляет ваш бот-ответ пользователю. Взгляните на GIF ниже, чтобы получить представление:

    Что происходит, когда вы отправляете сообщение боту Telegram (упрощенно), шаг за шагом.Пользователь <—> взаимодействие с ботом, статическая версия.

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

    3. Внедрите свой обработчик

    Задача обработчика — обрабатывать входящие обновления Update из Telegram API. Помните, что каждый раз, когда пользователь отправляет вашему боту сообщение, веб-перехватчик доставляет вашему обработчику обновление из Telegram.

    Telegram Обновление может содержать различную информацию: текстовое сообщение, голосовое сообщение, видео или документ, и многие другие.В этой статье мы увидим, как обрабатывать текстовые сообщения. Не стесняйтесь исследовать другие варианты с помощью бота для обработки аудио, видео или документов!

    Поскольку область действия обработчика в основном предназначена для обработки ответов и выполнения запросов API, язык программирования Go является идеальным инструментом.

    Telegram Update может быть намекающим объектом со всеми его полями. К счастью, мы можем представить это с помощью более простой структуры в Go для решения нашего варианта использования:

    Облегченная структура обновления Telegram на языке программирования Go.

    Аналогичным образом мы определяем структуру сообщения:

    Облегченная структура сообщения Telegram в Go.

    И, наконец, структура чата:

    Облегченная структура чата Telegram на Go.

    С этими тремя структурами; Update , Message и Chat , мы готовы обрабатывать сообщения наших пользователей.

    Вы заметили `json:" something "` справа от каждого поля структуры. Это указывает декодеру JSON, как анализировать входящий запрос Telegram в соответствующую структуру.Например, `json:" update_id "` в структуре Update указывает декодеру JSON искать ключ с именем update_id и устанавливать соответствующее значение для атрибута UpdateId нашей структуры Go Update.

    Теперь мы можем легко декодировать входящий запрос, содержащий обновление из Telegram.

    Теперь, когда мы проанализировали запрос, мы можем получить доступ к Message.Text и сделать некоторую магию. Пришло время сиять здесь; теперь вы можете разработать функции, которые делают вашего бота выдающимся.

    Ниже приведен пример RapGeniusBot, бота, который генерирует тексты рэп-музыки на основе Message.Text входящего обновления Update . Основная функция моего обработчика:

    Для подробностей реализации каждой функции полный код RapGeniusBot доступен в моем репозитории.

    Хорошо, теперь, когда вы выполнили некоторую обработку на основе значения сообщения, вы готовы отправить сообщение обратно в чат. Давайте увеличим масштаб функции sendTextToTelegramChat , чтобы увидеть, как мы можем это сделать:

    Сфокусируйтесь на строках с 5 по 10.Здесь мы отправляем наше сообщение в чат, отправляя запрос POST на явную конечную точку / sendMessage API Telegram. Для этого вам необходимо пройти аутентификацию с помощью токена бота , который BotFather предоставил вам во время создания бота.

    Подведем итоги; Теперь у вас есть функция обработчика, которая выполняет всю обработку,

    1. Ваш обработчик декодирует входящие запросы Telegram,
    2. Ваш обработчик может получить доступ к полям обновления Update , например к сообщению .Текст для выполнения некоторых преобразований, таких как создание текстов рэп-музыки в примере RapGeniusBot.
    3. Ваш обработчик в конечном итоге отправляет сообщение обратно в чат, который инициировал разговор.

    Сейчас отличное время для добавления тестов, чтобы убедиться, что ваш обработчик работает должным образом. Например, мы можем проверить, что наш обработчик правильно анализирует входящие запросы Telegram. Это довольно просто, используя пакет net / http / httpest в Go. Напишем наш тест в отдельный тестовый файл, например parse_update_test.перейти .

    run go test в папке с тестовыми файлами для запуска теста

    Хотите написать больше тестов, чтобы убедиться, что все работает должным образом? Telegram проделывает фантастическую работу, предоставляя разработчикам образцы обновлений JSON для использования в наших тестовых примерах. Обязательно ознакомьтесь с их документацией, чтобы создать надежный обработчик.

    Отлично! Весь этот код прекрасно живет на нашей машине. Давайте развернем обработчик и сделаем вашего бота доступным в Telegram.
    Не волнуйтесь; вы уже готовы на 95%.😉

    4. Разверните свой обработчик

    Две возможности,

    1. У вас есть собственный сервер, и вы знаете, как настроить обработчик для прослушивания заданного порта. Вам также удобно настраивать сертификаты.
    2. Вы не особо разбираетесь в системном администраторе.

    Если вы узнали себя в 1., Telegram предлагает подробную документацию о том, как настроить веб-перехватчик.

    Я сосредоточусь на варианте 2. Мы будем использовать облачного провайдера для развертывания нашего обработчика как услугу, то есть вам выставят счет только тогда, когда ваш обработчик действительно использует ресурсы.Учитывая характер механизма push-уведомлений веб-перехватчиков, с вас не взимается плата, если ваш бот не используется, что хорошо по сравнению с постоянно включенным сервером. Недостатком является потенциально более высокое время отклика. Когда обработчик вызывается впервые за некоторое время, холодный запуск может занять несколько секунд.

    Все основные облачные провайдеры предоставляют функцию как услугу: облачная функция в Google Cloud, AWS Lambda и функция Azure в MS Azure.
    Выберите оружие по своему выбору. Я продолжаю использовать облачную функцию Google.

    В консоли Google Cloud сначала выберите проект (создайте его, если вы новичок в Google Cloud). Затем нажмите в верхнем левом меню гамбургера и найдите Cloud Function .

    Найдите функцию Cloud в разделе вычислений.

    Затем нажмите кнопку «Создать функцию».

    Теперь давайте завершим некоторую информацию о конфигурации;

    • Имя — задает явное имя для вашей функции, например, telegram-bot-handler .
    • Выделено памяти — советую поэкспериментировать, начиная с наименьшего значения 128 MiB должно хватить.Go не требует памяти, особенно если вы делаете всего несколько запросов в обработчике или выполняете простую обработку строк. Кроме того, вполне вероятно, что ваш обработчик — всего лишь посредник, передающий запрос другой службе. В примере RapGeniusBot мой обработчик вызывает другой API, чтобы получить тексты песен на основе текста сообщения для обработки.
    • Триггер — не забудьте выбрать HTTP .
    • Аутентификация — Установите флажок «Разрешить неаутентифицированные вызовы».Это позволит Telegram отправлять обновление вашему обработчику через веб-перехватчик.

    Прокрутите еще немного, и вы сможете отправить исходный код для выполнения при вызове функции;

    • Исходный код — Выберите «Встроенный редактор»
    • Время выполнения — Выберите среду выполнения, соответствующую вашему коду Go.
    • Function.go — Скопируйте весь код обработчика (не забудьте про импорт) и вставьте его в текстовое поле Function.go.
    • Функция для выполнения — Напишите функцию, которую серверы Google должны вызывать при вызове вашей облачной функции.Вот ваш обработчик, например, HandleTelegramWebHook .

    Теперь щелкните «Переменные среды, сеть, таймауты и многое другое».

    Появится множество опций, настройте Область и Тайм-аут в соответствии с любыми вашими требованиями.

    • Настройки входа — Убедитесь, что установлен флажок «Разрешить весь трафик», чтобы серверы Telegram могли получить доступ к вашему обработчику.

    И последнее, но не менее важное: установите переменную среды, которая нужна вашему коду.Вам нужно, как минимум, установить TELEGRAM_BOT_TOKEN , которое BotFather дал вам в части 1.

    Нажмите «создать». Ваша облачная функция будет готова через несколько секунд.

    Теперь перейдите на вкладку «Триггер» вновь созданной облачной функции и скопируйте URL-адрес для вызова функции. Мы скажем Telegram отправить Update на этот URL-адрес при определении веб-перехватчика на следующем шаге.

    Вот и все; вы закончили со своим облачным провайдером! Осталось только настроить URL-адрес веб-перехватчика вашего Telegram-бота.

    5. Установите веб-перехватчик с помощью Telegram API

    Последний шаг!

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

    Это 3 строки в вашей оболочке.

    В ответ от Telegram API вы получите хороший ответ {«ok»: true, «result»: true, «description»: «Webhook was set»}.

    6. Наслаждайтесь

    Поздравляю, ваш бот готов! 🔥👏

    Пообщайтесь с ним в Telegram и поделитесь им с друзьями.К этому моменту вы создали потрясающего бота Telegram. Оставьте комментарий о своем боте; Не могу дождаться, чтобы увидеть интересные вещи, которые вы разработали!

    Как создать своего первого бота в Telegram: руководство для абсолютных новичков | Процессная улица

    Я был одержим научной фантастикой с подросткового возраста, поэтому программирование всегда нравилось мне. Меня очаровала идея о том, что можно написать программу, которая ведет себя случайным образом — для меня это уже было глубоко в области научной фантастики!

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

    Ничего особенного. Я вряд ли мастер-программист, и вам не обязательно им быть. Имея базовые знания в области программирования и API, вы можете создавать действительно полезные программы для удовольствия и получения прибыли. В этом руководстве мы рассмотрим создание бота Telegram с нуля.

    Бот Telegram можно использовать с Intercom API, чтобы агенты службы поддержки могли связаться со своими клиентами, использующими Telegram.Он также может включать автоматизацию, которая объединяет полезные ресурсы с живым чатом, как в примере ниже от orat.io:

    Telegram — отличный дом для ботов, ориентированных на клиентов, с более чем 200 000 000 активных пользователей в месяц и ежегодным темпом роста 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 (токен: токен) 

    (замените ТОКЕН на токен 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 проходят через переменную сообщения после того, как она была очищена методом 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. Теперь вы можете закрыть окно терминала, зная, что ваш бот тихонько издает звуковой сигнал в фоновом режиме. 🤖

    На этом ваш первый удар по боту Telegram завершен. Попутно вы узнали о терминале, Ruby, драгоценных камнях, API Telegram и о том, как развернуть бота на сервере. Есть вопросы или предложения? Вы можете написать мне в Twitter.

    Создание бота Telegram — Справочный центр Flow XO

    Чтобы создать бота для Telegram, выполните следующие действия:

    1. В Flow XO щелкните Bots в верхней строке меню, затем выберите New Bot .
    2. Теперь выберите Telegram в качестве платформы обмена сообщениями.
    3. Введите описательное имя для бота.
    4. Затем вы должны перейти по этой ссылке, чтобы начать разговор с @BotFather и создать бота с помощью команды «/ newbot». Более подробные инструкции вы найдете на сайте Telegram.
    5. После того, как вы создадите бота, вам будет выдан токен. Скопируйте его, так как вам нужно будет вставить его в Flow XO.
    6. Для поддержки всех доступных типов сообщений вам также необходимо включить «/ setinline» (для упоминания или прямого упоминания) и «/ setprivacy» для отключения (для подслушивания) в BotFather.Мы объясним, как дальше.
    7. Чтобы включить встроенную поддержку, отправьте сообщение @BotFather с помощью «/ setinline». Когда он спросит, выберите только что созданного бота. Теперь вам будет предложено ввести сообщение-заполнитель. Введите здесь что-нибудь, мы предлагаем общий вариант «Спросите что-нибудь». Затем вы должны увидеть сообщение о том, что ваши встроенные настройки были обновлены.
    8. По умолчанию боты Telegram могут слышать только сообщения, адресованные им. Чтобы включить подслушивающие команды (если они вам нужны), вы должны отключить конфиденциальность. Хорошая практика — оставлять конфиденциальность включенной, если вам действительно не нужно подслушивать. Сообщение @BotFather с помощью «/ setprivacy». Затем вам будет предложено выбрать бота. Теперь введите «отключить», чтобы изменить режим конфиденциальности, и, наконец, вы должны увидеть сообщение об успешном завершении.
    9. Вернувшись в Flow XO, введите имя пользователя вашего нового бота и вставьте токен, который вам ранее дал @BotFather.
    10. Наконец, сохраните бота. Теперь бот запущен!
    11. Последний шаг предоставит вам подробную информацию о том, как распространить вашего бота среди других пользователей.

    Распространение вашего бота

    Для распространения вашего бота среди других пользователей вы можете использовать ссылку в таком формате:

     https: // телеграмма.я / {имя пользователя}
     

    Где {username} — имя пользователя вашего бота. Это позволит любому пользователю Telegram начать разговор с вашим ботом. Конечно, человек, нажимающий на ссылку, должен быть зарегистрирован и готов использовать Telegram на своем устройстве.

    Если вы хотите дать людям ссылку, позволяющую им добавить вашего бота в свою группу, вы можете использовать следующий формат ссылки:

     https://telegram.me/{username}?startgroup=1
     

    Снова замените {username} именем пользователя вашего бота.

    Настройка бота

    Существует множество дополнительных настроек, которые вы можете обновить с помощью @BotFather, что улучшит внешний вид вашего бота и даст вашим пользователям больше информации о том, что он делает.

    Обо всех настройках бота можно прочитать в Telegram.

    Кнопка пуска

    Когда пользователь впервые подключается к боту (он нажимает кнопку «СТАРТ» в Telegram), боту будет отправлено сообщение «/ start». Вы можете проверить наличие этого, чтобы узнать, что пользователь нажал «СТАРТ» и впервые поприветствовал пользователя.

    Сообщите нам, как можно улучшить Flow XO на нашем сайте отзывов.

    Создайте бота Telegram, чтобы помочь вам изучить новый язык

    Мы собираемся создать два сценария для этого руководства.Первый предназначен для подготовки набора данных (очистить веб-сайт, создать звук и сохранить данные), второй — для запуска бота.

    1. Подготовьте набор данных

    Давайте импортируем необходимые зависимости для этой задачи.

     из google.cloud import texttospeech 
    from bs4 import BeautifulSoupimport pandas as pd
    import requests
    import re

    Мы собираемся очистить конкретную страницу от BBC Korea , которая является страницей главных новостей, и получить заголовки новостей.

    Рисунок 1: BBC Korea — Top News Page

    Если мы посмотрим на элемент inspect в Google Chrome, каждый заголовок заключен в элемент span и класс most-popular-list-item__headline . Это код для очистки этого конкретного элемента с помощью BeautifulSoup.

     url ​​= 'https://www.bbc.com/korean/popular/read' 
    page = requests.get (url)
    soup = BeautifulSoup (page.content, 'html.parser')
    title = soup. findAll ('span',
    {'class': 'most-popular-list-item__headline'})

    Теперь давайте переберем заголовков , получим заголовок новости, разделим его на слова и добавим в список.\ w \ s] ‘,’ ‘, title.text)
    words = title.split ()
    result + = words

    Оберните приведенные выше коды в функцию с именем get_hangeul , чтобы ваш код выглядел так.

    Обратите внимание, что мы возвращаем набор (результат) , потому что мы хотим, чтобы список имел уникальные значения, и мы можем добиться этого, используя Python Set .

    После того, как мы получим хангыль, мы собираемся использовать Google Text-to-Speech API, чтобы создать аудиофайл для каждого слова и сохранить его в папке под названием audio .

    Я использовал код из руководств по быстрому запуску преобразования текста в речь Google здесь, в разделе Создание аудиоданных . Давайте немного изменим его и обернем код в функцию create_audio , которая принимает текст (корейское слово) и язык (по умолчанию ko-KR, который является корейским), и сохранит аудио в папке audio .

    Теперь создайте основную функцию, которая вызывает get_hangeul , перебирает ее результат и сохраняет аудиофайл, а также сохраняет список корейских слов в .Формат csv называется dictionary.csv .

     слов = get_hangeul () для слова в словах: 
    create_audio (word) dictionary = pd.DataFrame (words, columns = ['word'])
    dictionary.to_csv ('dictionary.csv', index = False)

    Используя эту основную функцию, оберните все приведенные выше коды и сохраните их как dataset.py . Ваш файл должен выглядеть так.

    Круто! Запустите скрипт из терминала (не забудьте сначала создать папку audio по тому же пути, что и набор данных .py ).

     python dataset.py 

    После запуска скрипта вы увидите, что теперь у нас есть файлов .mp3 в папке audio и dictionary.csv .

    Отлично! Набор данных готов, давайте создадим бота.

    2. Создание бота Telegram

    Принцип работы нашего бота довольно прост. Каждый раз, когда пользователь отправляет команду / word , мы собираемся взять одно случайное слово из файла dictionary.csv и отправить его с соответствующим .mp3 файл.

    Во-первых, импортируйте библиотеки и установите функцию ведения журнала (это для отладки вашего бота, если он обнаруживает некоторые ошибки).

     из telegram.ext import Updater, CommandHandlerimport pandas as pd 
    import logging
    logging.basicConfig (level = logging.DEBUG,
    format = '% (levelname) s -% (message) s')
    logger = logging.getLogger ()
    logger.setLevel (logging.ERROR)

    Давайте создадим функцию для основной задачи нашего бота. В этой функции бот прочитает словарь .csv , случайным образом выбирая одно слово, затем отправляет слово и аудиофайл обратно пользователю и помещает его в функцию под названием send_word .

    Теперь создайте основную функцию для запуска бота.

    Когда мы пишем CommandHandler ('word', send_word)) , это означает, что каждый раз, когда пользователь отправляет команду / word боту, он запускает функцию send_word .

    Объедините все эти коды в один файл с именем main.py . Ваш файл должен выглядеть так.

    Теперь вы можете запустить файл main.py в терминале.

     python main.py 

    Если все работает нормально, вы должны увидеть, как ваш бот отправляет обратно слово и звук после того, как вы отправите ему команду / word .

    Поздравляем! Это не сложно, правда? Теперь у вас есть бот для телеграмм, который помогает выучить новый язык, круто!

    telegram-bot — Создайте бота с помощью BotFather

    Пример

    Откройте чат с @BotFather в Telegram и нажмите команду / start .

    После того, как вы получите список команд, выберите команду / newbot , чтобы получить это сообщение:

    Хорошо, новый бот. Как мы это назовем? Пожалуйста, выберите имя для вашего бота.

    Введите имя для вашего бота, которое может быть любым, и отправьте его. После этого BotFather запросит имя пользователя для вашего бота:

    Хорошо. Теперь давайте выберем логин для вашего бота. Он должен заканчиваться ботом . Вот так, например: TetrisBot или tetris_bot.

    Это должно заканчиваться словом «бот». Если желаемое имя пользователя занято или недоступно, попробуйте еще раз с другим именем.

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

    Готово! Поздравляю с приобретением нового бота. Вы найдете это на telegram.me/???bot. Теперь вы можете добавить описание, раздел о разделе и изображение профиля вашего бота, см. / help для получения списка команд.Посредством Кстати, когда вы закончите создавать своего крутого бота, обратитесь в нашу службу поддержки ботов. если вам нужно лучшее имя пользователя для него. Просто убедитесь, что бот полностью перед тем, как вы это сделаете.

    Используйте этот токен для доступа к HTTP API: xxx: xxx

    Теперь с полученным токеном вы можете отправить тестовое сообщение, позвонив на сайт https://api.telegram.org/botBOTTOKEN/sendmessage?chat_id=YOURCHATID&text=YOURTEXT

    Существует два основных метода взаимодействия телеграмм-ботов: метод push и метод pull.Используя метод pull, вы должны время от времени вызывать / getupdates , чтобы проверять, есть ли новые сообщения, отправленные вашему боту. Метод push использует веб-перехватчик (метод / setwebhook ) для вашего скрипта, который вызывается каждый раз, когда пользователь отправляет сообщение вашему боту.

    Предоставленная информация представляет собой файл в формате JSON со всей необходимой информацией (об отправителе и сообщении).

Check Also

Психологические особенности детей 5-6 лет: что нужно знать родителям

Как меняется поведение ребенка в 5-6 лет. На что обратить внимание в развитии дошкольника. Какие …

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *