Как написать своего бота: Простой Telegram-бот на Python за 30 минут / Хабр

Содержание

15 сервисов для простого создания ботов в Telegram — Сервисы на vc.ru

{"id":89824,"url":"https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram","title":"15 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0432 Telegram","services":{"facebook":{"url":"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram","short_name":"FB","title":"Facebook","width":600,"height":450},"vkontakte":{"url":"https:\/\/vk.com\/share.php?url=https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram&title=15 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0432 Telegram","short_name":"VK","title":"\u0412\u041a\u043e\u043d\u0442\u0430\u043a\u0442\u0435","width":600,"height":450},"twitter":{"url":"https:\/\/twitter.

com\/intent\/tweet?url=https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram&text=15 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0432 Telegram","short_name":"TW","title":"Twitter","width":600,"height":450},"telegram":{"url":"tg:\/\/msg_url?url=https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram&text=15 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0432 Telegram","short_name":"TG","title":"Telegram","width":600,"height":450},"odnoklassniki":{"url":"http:\/\/connect.ok.ru\/dk?st.cmd=WidgetSharePreview&service=odnoklassniki&st.shareUrl=https:\/\/vc.ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram","short_name":"OK","title":"\u041e\u0434\u043d\u043e\u043a\u043b\u0430\u0441\u0441\u043d\u0438\u043a\u0438","width":600,"height":450},"email":{"url":"mailto:?subject=15 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0431\u043e\u0442\u043e\u0432 \u0432 Telegram&body=https:\/\/vc.
ru\/services\/89824-15-servisov-dlya-prostogo-sozdaniya-botov-v-telegram","short_name":"Email","title":"\u041e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u043d\u0430 \u043f\u043e\u0447\u0442\u0443","width":600,"height":450}},"isFavorited":false}

132 641 просмотров

Что такое бот в ВК и зачем он нужен: краткое пособие

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

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

Содержание:

Что такое боты во Вконтакте

Боты – это пользовательские «фейковые» страницы, которые предназначены для общения, рассылки спама, сообщений, накрутки подписок и просто в рекламных целях.

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

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

Полезные ссылки: Как самому себе отправить сообщение в ВК: 4 способа, Как набрать подписчиков в ВК: 7 работающих способов, Как красиво оформить страницу в ВК: 7 простых советов от профи.

 

Зачем нужны чат-боты

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

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

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

Блокировка происходит не сразу, сначала подозрительные страницы удаляются и на их месте появляются «собачки». Если их количество превышает общую численность подписавшихся на треть, то за этим следует бан.

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

Виды ботов

По степени сложности программы боты бывают:

  1. Примитивные – простенькая утилита, которая способна переписываться с пользователями по односложному сценарию, рассылать спам и сообщения. Если в базе ответа на заданный вопрос пользователя нет, то чат-бот пришлет сообщения «Я вас не понимаю».
    Видели займоботов? Этими объявлениями пестрят все социальные сети и не только. Такие боты часто используются кредитными организациями.
  2. Продвинутые – это боты с искусственным интеллектом. Такие программы способны просчитывать несколько вариантов ответов на вопросы, угадывать настроение написавшего человека, и предоставить ту информацию, которая нужна пользователю.

Кому нужны чат-боты

Допустим, у вас есть довольно раскрученный аккаунт во Вконтакте, вы занимаетесь продажей некоего товара через него. С чем вы сталкиваетесь ежедневно? Именно. С одними и теми же вопросами потенциальных покупателей. Что может сделать купленный или созданный вами бот:

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

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

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

Как создать бота во Вконтакте: краткое пособие

Для создания продвинутой программы потребуются технические знания программиста. Если вы ими обладаете, то нет ничего проще. Но мы говорим, об обычных пользователях. Коды программирования для нас, как какие-то точки с закорючками.

Для большинства юзеров предлагаю следующую инструкцию по созданию чат-ботов:

  • Выбираете специальный сервис для «ботостроения». На сегодняшний день лучшие из них – это Chatgun, BotVK и Robochat. С последним я имела дело, поэтому пример покажу на нем. 
  • Нажимаете «Создать бота» и регистрируетесь через Вконтакте. Также можно указать электронную почту.
  • Привязываете свое сообщество и разрешаете программе доступ к нему. После разрешения в ваши сообщения на странице придет краткое пособие по созданию бота.
  • Ставите галочку напротив того сообщества, в которое хотите внедрить бота и нажимаете «Подключить». 
  • Нажимаете на шаблон и подключаете ваше сообщество. В примере я указала включить: приветственное сообщение, реакцию на подписку, отписку и другие незапланированные действия. Вы можете настроить шаблон любым иным способом, как вам понравится, и какие задачи вы хотите решать при помощи бота. 

В строке приветственного сообщения можно написать один или несколько вариантов, которые бот будет отправлять попеременно. Также есть возможность создавать индивидуальные сообщения, указав адресатов. Одним из функционалов этого сервиса является возможность прописывать заранее сценарии переписок. Для этого нужно только продумать от 5 до 10 вопросов, которые задают друг другу в сети пользователи.

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

  • Обязательно уделите время прописыванию ключевых слов, по которым бот будет отправлять ответы пользователям по вашим сценариям переписки. И добавьте смайлики, прикрепленные изображения, макросы. Это поднимет настроение гостям и привлечет больше подписчиков в режиме онлайн, 24/7.
  • Как только все необходимые инструменты и алгоритмы прописаны, нажимаете кнопку «Сохранить». 

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

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

5 примеров применения ботов в бизнесе

На конференции в 2016 году Марк Цукерберг рассказал об эффективности применения ботов в бизнесе. По его словам, это не только снижает количество человеко-часов, но и оптимизирует производственные процессы.

На примерах некоторых крупных компаний я приведу статистику, насколько полезны боты.

  1. Бот заказа такси компании «Максим» снизил количество звонков напрямую в колл-центр на 2/3, что сэкономило собственникам немалые деньги на штате сотрудников и оплате человеко-часов. 
  2. Авиакомпании также прибегают к применению ботов из-за огромного количества звонков ежедневно. Операторы справочной службы разгрузились на 50%, что позволило оперативно отвечать клиентам только по важным или экстренным звонкам. 
  3. Комики из Comedy Club внедрили бот на страницы социальных сетей для раскрутки старых и новых видео, что повысило количество подписчиков на 1 миллион, и эта цифра только растет. 
  4. Также боты применяются в развлекательных целях, для увеличения продаж, проведения розыгрышей и лотерей. Например, во Вконтакте создан бот для генерации промокодов одной известной пиццерии.
     
  5. В этом примере опишу пользу применения ботов в кальянных и других местах отдыха. Разработчики постарались не только прописать ключевые слова и варианты ответов на вопросы потенциальных потребителей, но и создали целый квест для привлечения новых клиентов, что стало их «фишкой». Выручка собственников после внедрения бот-программы выросла в 3 раза.

Кейсы: в каких сферах помогут чат-боты

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

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

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

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

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

С уважением, Ильмира Колодей
специально для проекта proudalenku. ru

Приглашаю вас в мой новый Марафон:

🔹 5 ДНЕЙ — 5 НАВЫКОВ 🔹

Это тест-драйв удаленной профессии, он рассчитан на новичков. Особенно полезен будет тому, кто давно мечтает зарабатывать удаленно, но не знает, с чего начать. Предлагаю начать с марафона!

👉🏻 Чтобы узнать подробности, жмите на кнопку:

Марафон →

До встречи в марафоне!
С уважением, Ольга Филиппова

Создать чат бота на JavaScript

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

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

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

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

Разметка страницы и подключение скриптов. HTML

В нашей работе мы будем использовать JavaScript и его библиотеку JQuery. Чтобы все записанные нами функции загружались и работали нам нужно подключить все плагины и скрипты, с помощью парного тега <script>. Создадим 2 тега <script>, в первом будет указана ссылка на основной JavaScipt документ, в котором мы и будем работать, а во втором подключим библиотеку JQuery.

Также для корректной работы плагина нужно подключить его стили. Для этого создадим тег <link>. В нем указываем ссылку, идентичную той, что находится в теге <script>.

<!DOCTYPE html>
<html lang="ru">
<head>
	<title>Test Page</title>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1">
	<link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet">
	<link rel="stylesheet" type="text/css" href="dist/jquery.convform.css">
	<script type="text/javascript" src="dist/jquery.convform.js"></script>

Для проверки работы чат-бота создаем форму. Записываем тег input с типом text и именем question. Можете поменять имя на любое другое, это не имеет особого значения.

Ниже можем создать блоки с вопросами. Создаем несколько списков select, в его атрибуте con-question вводим сам вопрос. Далее в элементах списка (option) записываем наши ответы. Вот пример:

	<section>
	    <div>
	        <div>
	            <div>
	                <div>
	                    <div>
	                        <div>
	                            <form action="" method="GET">
	                                <select data-conv-question="Здравствуйте! Я бот поддержки сайта Fokit.ru. Могу вам составить компанию, хотите поговорить? (Нужно выбрать ответ)" name="first-question">
	                                    <option value="yes">Давай</option>
	                                    <option value="sure">Конечно поболтаем!</option>
	                                </select>

Итак, мы создали небольшую структуру, содержащую вопросы с ответами. На неё мы будем ссылаться при работе с JavaScript.

Пару слов об атрибутах. Как вы наверное заметили в тегах <select> содержится атрибут "conv-question". Он содержит в себе необходимый вопрос, ответы на которые находятся в атрибуте "select". При желании можете поменять его на любой другой.

Если хотите поменять количество ответов и их содержимое, просто добавляйте теги <option> и задавайте значение атрибута <value>, то, которое вам нужно.

Работа с JavaScript

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

Параметры JavaScript:

Если хотите, то можете поменять названия некоторых функций. Также можно поменять значение "typeInputUi" на обычный "text". Вы заметите небольшую разницу в отображении. Как вы могли понять эта команда задает тип поля ответа. По умолчанию стоит значение "textarea", что равно тегу <textarea>.

Заключение

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

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

Теги:

КАК СДЕЛАТЬ ЧАТ-БОТА ЗА 15 МИНУТ

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

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

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

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

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

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

Целью создания чат-бота может быть:

  1. Автоматизация работы службы поддержки.
  2. Разгрузка колл-центра и ответственных менеджеров.
  3. Построение воронки продаж.
  4. Привлечение и получение лидов.

Все понимают, что бот — это программа. Чтобы создать программу, нужен программист. Чтобы привлечь программиста, нужны средства. Но что делать, если чат-бот необходим, а денег на программиста просто нет.

Мы знаем как вам помочь. В этой части статьи мы расскажем как создать чат-бота бесплатно.

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

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

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

Таблица — Преимущества и недостатки создания чат-бота через конструктор ботов и при помощи программиста.

Вывод.

Если у вас есть время и средства — подключайте программиста.

Если времени и средств особо нет, читайте нашу статью и подключайте чат-бота самостоятельно.

Отвечаем на главный вопрос, который интересует большинство из зашедших на эту страницу пользователей: как создать чат-бота, если не умеешь программировать и при виде кода впадаешь в панику?

Как вы уже поняли, нужен конструктор ботов. Но, если вы введете в Google запрос «какой конструктор ботов выбрать» — в ответ получите 1К ссылок, с самыми разнообразными по функционалу и возможностям конструкторами.

DON’T PANIC!

Мы немножко познакомим вас с темой и подскажем как получить то, что нужно именно вам.

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

  1. Facebook messenger
  2. Telegram
  3. Viber

Начнем по порядку.

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

Джон Рэмптон, американский миллионер, на сайте entrepreneur.com, опубликовал список сервисов для создания чат-ботов (https://www.entrepreneur.com/article/289788), которые сам лично опробовал в своем бизнесе. Мы выбрали 5 из них, которые позволяют создать чат-бота бесплатно.

Как утверждает Рэмптон, лучший сервис для создания чат-ботов. Простой, удобный, бесплатный.

Достаточно простой в освоении и использовании сервис для создания чат-ботов. Наша команда опробовала его и мнения разошлись 50/50. Да, сервис прост, но прост настолько, что значительно уступает тому же Many Chats по функционалу и отчетности. Но это дела каждого. Безусловно достоин внимания.

Мы тестировали несколько сервисов для создания чат-ботов и можем с уверенностью отдать предпочтение платформе ManyChat.

Почему ManyChat:

  1. Простой и интуитивно понятный интерфейс, несмотря на то, что он англоязычный.
  2. Широкие возможности аналитики внутри самого сервиса.
  3. Возможность добавлять виджеты на сайт.
  4. Совместимость с Facebook.
  5. Широкий функционал в бесплатной версии.
  6. Адекватная стоимость платной подписки.
  7. Наличие подробной справки и обучающего видео и текстового материала.

Шаг 1. Регистрация

  • Заходим на сайт сервиса и кликаем Get Started Free.
  • Попадаем на окно авторизации через Facebook.
  • Кликаем Sign In With Facebook.
  • Устанавливаем галочку на пункте I agree to Many Chat’s Terms of Service and Private Policy.
  • Кликаем Sign In With Facebook.
  • Вводим логин и пароль от вашего аккаунта в Facebook (если вход не произошел автоматически).
  • На следующем экране выбираем какие именно страницы вы хотите подключить к Many Chats
  • Далее, загрузится основной экран с синим осьминогом, на котором ваш необходимо согласиться или отказаться от получения рассылки от сервиса и нажать кнопку Get Started.
  • После этого, попадаем в дашборд. Это такой себе командный пункт из которого вы будете управлять своим чат-ботом.

Шаг 2. Приветственное сообщение

Для начала поздороваемся.

Первое, что увидит пользователь, который собрался написать вам сообщение и вошедший в Facebook Messenger — кнопка Get Started внизу экрана мессенджера. Кликнув на нее, пользователь получит первое приветственное сообщение.

Как настроить Welcome Message в ManyChats:

  1. В левом меню кликаем по кнопке Automation
  2. В выпадающем меню находим пункт Welcome Message и кликаем по нему
  3. Далее кликаем по сообщению и пишем приветственное сообщение

Шаг 3. Ответ на непонятный вопрос

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

Как настроить Default Reply в ManyChats:

  1. В левом меню кликаем по кнопке Automation
  2. В выпадающем меню находим пункт Default Reply и кликаем по нему
  3. Далее кликаем по сообщению и редактируем сообщение

Шаг 4. Ключевые слова

Ключевые слова — это особые сигналы для бота. Чтобы было понятно, приведем пример: если вы отправите слово «start» нашему чат-боту, он подпишет вас на рассылку и вы увидите приветственное сообщение подтверждения подписки.

Можете попробовать самостоятельно: Бот Mnews — это ссылка на нашего бота.

Остальные сигналы (ключевые слова) работают аналогично: задается ключевое слово и к нему привязывается определенное действие. Если максимально все упростить, то можно провести аналогию с сигналами светофора:

  1. ключевое слово: красный — действие бота: стоп
  2. ключевое слово: желтый — действие бота: приготовься
  3. ключевое слово: зеленый — действие бота: начинай движение

Шаг 5. Статистическое меню в Messenger

Это то меню, которое видит пользователь при входе в диалог с вами в Messenger. Вот, как оно выглядит:

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

В бесплатной версии, вам будет доступно 2 пункта для вывода. Как вариант, можно вывести такие:

  1. адрес вашего сайта
  2. СТА для совершения действия, например, личной консультации

Как настроить главное меню в ManyChats

  1. Заходим в дашборд, пункт Automation
  2. Переходим в пункт Main Menu

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

Шаг 6. Отправка широковещательных сообщений

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

Для этого:

  • зайдите в дашборд
  • в левом меню найдите пункт Broadcasting и кликните по нему
  • в выпадающем меню кликните по пункту Broadcasts
  • теперь, чтобы создать сообщение, нажмите на кнопку +New Broadcast
  • создайте свое первое сообщение и кликайте Go Next, чтобы продолжить и Preview, чтобы посмотреть что получилось.

Настройка стала +/- ясно/понятно. Но вот главный вопрос — где взять подписчиков для бота? Для этого ManyChats располагает отличным инструментом, который называется Growth Tools.

Познакомимся с ним поближе

  • заходим в дашборд
  • в левом меню находим пункт Growth Tools и кликаем на него
  • далее, в правом верхнем углу жмем кнопку New Growth Tools и попадаем в меню редактирования нового инструмента роста

инструмент Bar

инструмент Modal

инструмент Slide-In

инструмент Page Take Over

инструмент Button

инструмент Box

Они все выполняют важную функцию — вызывают пользователя на диалог и перенаправляют его в Messenger. Различаются только дизайном.

Первым делом, разберемся с вкладкой Initial State.

Что мы можем тут настроить:

  1. отображение описания
  2. вид кнопки
  3. цвета попапа
  4. размер попапа
  5. дополнить попап изображением
  6. прописать нужный текст

Как редактировать текст сообщения:

Переходим на вкладку Submitted State.

Переходим на вкладку Opt-In Actions.

Здесь игра в дизайнера и копирайтера заканчивается и стартует настоящий хардкор.

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

На всякий случай укажем, что если все-таки у вас есть подходящая последовательность, то ее можно подтянуть к подтверждению подписки на бота вот так:

  1. кликаем в поле Add Subscriber to Sequence
  2. в выпадающем списке выбираем необходимую последовательность
  3. кликаем кнопку Next

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

Нам ведь нужно что-то сообщить пользователю, когда он нажмет кнопку «Отправить в messenger» и подтвердить подписку на бота (если этого не сделать, такие действия считаются спамом).

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

Чтобы отредактировать созданный шаблон Flow, кликаем кнопку Edit рядом с названием:

После этого, мы попадаем на экран редактирования сообщения и построения цепочки (потока, flow).

Что тут нужно сделать:

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

После того, как вы вдоволь наиграетесь с инструментарием и настроите свой лучший flow, переходите к следующему шагу.

Кликаем на вкладку Setup

Здесь нас интересует код Java скрипта, который нужно будет установить на сайт.

  1. Кликаем на кнопку Install JavaScript Snippet
  2. На вкладке Authorize Website вписываем адрес своего сайта и жмем кнопочку Add, затем Next
  3. На вкладке Install ManyChat Snippet копируем код и вставляем его на ваш сайт перед закрывающим тегом
  4. Возвращаемся в пункт редактирования и включаем виджет.
  5. Идем на сайт тестировать все.

Боты facebook messenger — отличный инструмент для построения эффективной воронки продаж и коммуницирования с аудиторией.

Перейдем к не менее интересному вопросу — чат бот телеграмм.

Чат бот telegram интересный и эффективный инструмент.Инструкция: Как сделать чат-бота Telegram без кодинга

Подготовительные работы:

  1. Устанавливаем приложение Telegram. Ссылка на скачивание: ссылка
  2. Регистрируемся в приложении

Для легкого и быстрого создания бота, мы будем использовать сервис Manybot.

Создаем бота:

  • Переходим по ссылке: ссылка
  • Кликаем кнопку «Создать бота»:
  • Далее, кликаем: Открыть ManyBot в Telegram:
  • если вы работаете с десктопа, откроется окно переадресации в приложение Telegram, в котором нужно нажать «Открыть».
  • открываем Telegram и кликаем кнопку «Добавить нового бота» в меню Manybot:
  • следуя инструкции, переходим к @BotFather. Это «царь-бот» в Telegram. Любого нового бота, можно создать только обратившись к нему. Что мы собственно говоря и сделаем. Переходим к @BotFather:
  • видим приветственное сообщение. Для начала работ, отправляем боту команду /start, в ответ бот пришлет с описанием своих функций и команд, которыми вы можете эти функции вызвать.
  • Сообщаем @BotFather о том, что хотим создать нового бота командой /newbot:
  • Дальше, @BotFather спросит как вы хотите назвать своего бота. Мы назовем его TestBot.
  • Теперь, даем боту юзернейм, по которому вы сможете найти бота в поиске:
  • Бот создан. Теперь нужно скопировать токен для дальнейших действий:
  • Возвращаемся в ManyBot и отправляем боту скопированный токен и жмем кнопку «Я скопировал токен»:
  • В ответ вы получите сообщение об успешном создании бота и просьбой немного о нем рассказать:
  • Этот шаг можно пропустить.

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

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

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

Сделайте созданного бота админом вашего канала:

  • зайдите в канал
  • найдите пункт управления каналом (три вертикальные точки справа вверху)
  • кликните по ним и в выпадающем меню выберите: управление каналом — администраторы — добавить администратора:
  • Далее, в поиске найдите вашего бота по юзернейму, который мы присваивали ранее и назначьте его админом:
  • Находим в Telegram специального бота, который называется @Controllerbot

Первое, что вы увидите — сообщение с описанием возможностей этого бота.

  • даем боту команду /start
  • Далее, подключаем бота. Для этого копируем токен, полученный ранее в @Controllerbot:
  • Далее, подключаем канал:
  • Создаем пост. Для этого, кликните на кнопку «Создать новый пост». Вас автоматически переадресует в ваш созданный бот:
  • Отправляем непосредственно то, что хотим опубликовать:
  • Выбираем, что нужно добавить к посту (мы выбрали реакции):
  • Отправляем боту реакции, которые хотим прикрепить:
  • Кликаем кнопку «Далее» и выбираем необходимое действие:

Мы выбрали «Опубликовать». Вот, что получилось:

Для того, чтобы сделать опрос в Телеграм, находим бота @vote:

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

По окончанию, отправляем боту сигнал о завершении настроек в виде команды /done

Telegram бот @like

  • находим в поиске бот @like и отправляем ему команду /start
  • В ответ, бот попросит выслать сообщение, к которому нужно прикрепить реакции:
  • После этого, нужно выслать реакции, которые вы хотите использовать (до 6 эмоджи):

Пост готов.

  • Чтобы настроить меню Telegram, отправьте боту /commands
  • Чтобы посмотреть справку, отправьте боту /help
  • И так далее.

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

Представим, что предприниматель по имени Василий открыл цветочную лавку в Воронеже. Он активно общается с клиентами в мессенджерах, размещает рекламу на подходящих каналах и в целом постоянно наращивает базу покупателей. В прошлом году перед 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 часа в сутки без выходных.

Bot API: часто задаваемые вопросы

Меню
  • Стикеры
  • Каналы
  • Скачать Telegram
  • Часто задаваемые вопросы
  • Новости
  • Игры
  • Telegram Web
Telegram
  • Webogram
  • Игры
  • Стикеры
  • Каналы
  • FAQ
  • Скачать
Содержание
  • Общие вопросы
    • Как я могу создать бота?
    • Можно посмотреть примеры кода?
    • Добавьте в ботов фичу X!
    • Какие сообщения может получать мой бот?
    • Почему мой бот не видит сообщений от других ботов?
  • Получение обновлений
    • Как можно получать обновления?
    • Опрос всегда выдаёт один и тот же результат!
    • У меня проблема с вебхуками
    • У меня проблема с самозаверенным сертификатом
    • Как мне убедиться, что запросы идут с серверов Telegram?
    • Как делать запросы в HTTP-ответах к обновлениям?
  • Обработка медиафайлов
    • Как скачивать файлы?

Создание бота - Команды

  • 8 минут на чтение

В этой статье

Боты - это диалоговые приложения, которые выполняют определенный набор задач. На основе Microsoft Bot Framework боты общаются с пользователями, отвечают на их вопросы и заранее уведомляют их об изменениях и других событиях. Это отличный способ протянуть руку помощи.

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

Комплект пользовательского интерфейса Microsoft Teams

Более подробные рекомендации по проектированию ботов, включая элементы, которые можно захватить и изменить по мере необходимости, можно найти в пакете пользовательского интерфейса Microsoft Teams.

Добавить бота

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

  • Из магазина Teams (AppSource).
  • С помощью всплывающего окна приложения, выбрав значок Подробнее в левой части команд.
  • С @ упоминанием в новом чате или поле создания сообщения (в следующем примере показано, как это можно сделать в групповом чате).

Представьте бота

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

Приветственное сообщение в чате один на один

В личном контексте приветственные сообщения задают тон вашему боту. Сообщение включает в себя приветствие, то, что может делать бот, и некоторые предложения по взаимодействию (например, «Попробуйте спросить меня о…»). Если возможно, эти предложения должны возвращать сохраненные ответы без необходимости входа в систему.

Представления в групповых чатах и ​​каналах

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

Аутентификация бота с единым входом

Когда человек отправляет сообщение боту, может потребоваться войти в систему, чтобы использовать все его функции. Вы можете упростить процесс аутентификации, используя единый вход (SSO).

Не забывайте: в меню команд бота ( Что я могу сделать? ) вы также должны указать команду для выхода.

Экскурсии

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

Важно

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

Чаты один на один

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

Каналы и групповые чаты

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

Чат с ботом

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

Чат с ботом в разных контекстах

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

  • Личные приложения : В личном приложении у бота есть специальная вкладка чата.
  • Чат один на один : пользователь может начать приватный разговор с ботом.Это тот же опыт, что и использование бота в личном приложении.
  • Групповой чат : люди могут взаимодействовать с ботом в групповом чате, @ упоминая его.
  • Канал : люди могут взаимодействовать с ботом в канале. путем @ упоминания имени бота в поле для создания сообщения. Помните, что в этом контексте бот доступен для всей команды, а не только для канала.

Анатомия

Счетчик Описание
1 Название и значок приложения
2 Вкладка чата : открывает пространство для разговора с ботом (применимо только к личным приложениям).
3 Пользовательские вкладки : открывает другой контент, связанный с вашим приложением.
4 Вкладка «О программе» : отображает основную информацию о вашем приложении.
5 Облако чата : беседы с ботами используют платформу обмена сообщениями Teams.
6 Адаптивная карта : Если в ответах вашего бота есть адаптивные карты, карта занимает всю ширину пузыря чата.
7 Меню команд : Отображает стандартные команды вашего бота (определенные вами).

Меню команд

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

Список команд должен быть кратким. Меню предназначено только для выделения основных функций вашего бота.Команды также должны быть краткими. Например, создайте команду под названием Help вместо . Помогите мне, пожалуйста, ? Командное меню должно быть доступно всегда, независимо от состояния разговора.

Понимать, что говорят люди

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

Извлечь намерение и данные из сообщений

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

В следующих примерах описываются намерения и данные пользователя в сообщениях, отправляемых ботам.

Анализировать и улучшать

Узнайте, что пользователи говорят в чате с вашим ботом. Это будет непрерывный итеративный процесс по мере роста вашей пользовательской базы в разных местах и ​​организациях. Вы можете настроить распознавание языка вашего бота и сопоставление намерений с помощью Microsoft Language Understanding (LUIS).

  • Общие сведения о LUIS: узнайте, как LUIS использует AI для обеспечения понимания естественного языка (NLU) для данных вашего приложения.
  • Интеграция с LUIS: добавьте возможности естественного языка для своего бота без сложного процесса создания моделей машинного обучения.

Примеры использования

Простые запросы

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

Многооборотные взаимодействия

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

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

Связаться с пользователями

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

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

Теперь в этом канале пользователь может прочитать свое сообщение от бота.

Использование вкладок с ботами

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

Управлять ботом

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

Лучшие практики

Содержимое

Как сделать: создать четкую личность

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

Подробнее о написании для ботов см. В пакете пользовательского интерфейса Microsoft Teams (Figma).

Что нужно: четко обозначить, на что способен ваш бот

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

Нельзя: скрывать возможности своего бота

Первые впечатления имеют значение. Люди, вероятно, будут сбиты с толку или заподозрят подозрения, если им представят невзрачное сообщение для входа.

Нужно ли: распознавать не вопросы

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

Нельзя: упускайте возможность порадовать

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

Устранение неисправностей

Сделать: оказать помощь

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

Нельзя: оставлять пользователей в затруднительном положении

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

Сложные взаимодействия

Как: использовать модули задач или вкладки

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

Не делайте многооборотные взаимодействия утомительными

Обширный разговор для выполнения одной задачи - медленный и чрезмерно сложный. Это также требует от разработчика учета изменений состояния (таких как тайм-аут разговора или отправка сообщения «Отмена»).

Конфиденциальность

Do: Показывать только конфиденциальную информацию в личном контексте

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

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

Ваш бот не должен раскрывать конфиденциальную информацию группе людей.

Узнать больше

Эти другие рекомендации могут помочь в разработке вашего бота:

Подтвердите свой дизайн

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

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

Приветствую! - v1.2 (добавлена ​​дополнительная информация)

Кто-то, вдохновленный dADroid-bot, недавно попросил меня помочь им в правильном направлении создания своего собственного бота, и я хотел написать полное руководство о том, как создается бот. Поскольку казалось, что это то, что другие люди могут захотеть прочитать в будущем, я решил написать и поделиться исчерпывающим руководством, перечислив все необходимые инструменты и навыки, чтобы создать нового бота с нуля без какого-либо прошлого опыта.

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

Я хотел бы выделить несколько основных инструментов и навыков, необходимых для запуска нового подобного проекта, и я надеюсь, что из вас получится отличный бот!

Итак, приступим!

Введение - Что такое бот?

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

На DeviantArt это обычно означает чтение и написание комментариев, сообщений, журналов и взаимодействие с людьми.
(Более подробную информацию о хороших и плохих ботах можно найти здесь.)

Есть еще одна категория совершенно разных ботов Deviant Art, которые взаимодействуют с Deviant Art Messaging Network, которые BotLab очень хорошо описал.Эти боты относятся к системе чата, которую запускает этот сайт. Эта категория выходит за рамки данного руководства .

Шаг 1 - Язык программирования

Первый шаг для создания бота (или любого программного обеспечения) - это уметь кодировать.
Есть ли у вас опыт программирования? Если это так, вы можете сосредоточиться на написании своего бота. Если нет, не беспокойтесь, вам нужно начать изучать новый язык программирования . Какой язык программирования выбрать, не так важно, если он может подключаться к DeviantArt.

Вам просто нужно понимать основы компьютерной логики и, вероятно, вам будет удобно использовать язык на регулярной основе. В качестве примера языка программирования dADroid-bot написан на PHP, стандартном языке веб-разработки. Другие боты, такие как dAbot (созданный моим другом Кишаном-Багарией), используют Python, а некоторые, такие как dAhub , я считаю, что используют Java (не путать с JavaScript).

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

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

  • Ruby: красивый, простой для понимания и легкий в использовании, но мощный инструмент для начала программирования.
    Попробуйте здесь: tryruby.org
  • Python: очень популярный язык сценариев, имеет отличный, мощный и относительно простой в освоении синтаксис.
    Попробуйте по адресу: learnpython.org

  • Lua: очень гибкий и простой язык сценариев. Вот отличное видео на YouTube: www.youtube.com/watch?v=S4eNl1…

После того, как вы познакомитесь с концепцией, вы можете попробовать еще несколько продвинутых / сложных языков в будущем:
  • JavaScript (не путать с Java): defacto стандартный язык сценариев. это мощный, но простой способ, созданный при разработке веб-страниц и в настоящее время ориентированный на современные веб-приложения.
    Попробуйте по адресу: www.javascript.com/try
    ( Я настоятельно рекомендую изучить это в долгосрочной перспективе! )
  • PHP: наиболее часто используемый язык веб-программирования, который работает только в серверной части ( как серверы, хотя их можно запускать и на настольных компьютерах, и на вашем ноутбуке).Он мощный, но некоторые считают его древним, и большинство современных разработчиков стараются его избегать. Очень опасный инструмент при неосторожном обращении. Мощный и острый инструмент при осторожном обращении.
    dADroid записан в основном в PHP .
  • Java (не JavaScript): мощный, в меру простой для понимания и объектно-ориентированный язык, который чем-то похож на JavaScript, но совершенно другой. Разработано корпорацией Oracle и широко используется многими компаниями.Не надо с этим заморачиваться, по крайней мере пока . Я считаю, что dAhub был написан на Java.
  • C #: разработан Microsoft, изначально основан на синтаксисе C и C ++. Намного лучше, чем древний и неподдерживаемый аналог языка VB (визуальный базовый), который также был разработан Microsoft. До недавнего времени он мог работать только в операционных системах Windows (что означало невозможность работы на серверах Linux), хотя недавно была выпущена минималистичная версия для Linux.
    Он имеет синтаксис, в чем-то похожий на JScript (ответвление Microsoft JavaScript.)
    Широко используется в бизнес-среде, не совсем подходит для подобных проектов DIY, но имеет большой потенциал и поэтому широко распространен и, следовательно, имеет отличную поддержку на таких веб-сайтах, как StackOverflow.com.
    Опять же, не беспокойтесь об этом, только сейчас. Может быть удобным инструментом, если вы изучили языки программирования в академических классах (например, в колледже и университете).

Шаг 2 - API (подключение к DeviantArt)

Теперь, когда вы поработали с некоторыми языками и выбрали выработали общий синтаксис (и, надеюсь, выбрали один из них для использования), пора написать интерфейс для вашего бота.

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

В Википедии есть отличная (и подробная) статья об API, если вы хотите узнать больше. (Неплохой материал для чтения!)

DeviantArt использует два разных набора API:

  1. общедоступный, который DeviantArt предоставляет здесь:
    www.deviantart.com/developers/
  2. внутренняя под названием DiFi ( D eviantArt I nteractive F ragmented I nterface) , которую они используют для звонков между своим сайтом и своим сервером.

    какие-то души задокументировали DiFi здесь:
    github.com/danopia/deviantart-…

бот может использовать любой (или даже оба) из этих API для взаимодействия своего бота с DeviantArt.

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

DiFi API намного мощнее, не требует регистрации для получения ключа и более популярен в сообществе разработчиков DeviantArt. Однако владельцы сайта DeviantArt подразумевали, что только используется для их собственных внутренних вещей, поэтому он немного менее надежен, может изменяться в любой момент без предварительного предупреждения и, таким образом, потенциально может сломать вашу программу. Однако, поскольку DeviantArt практически не менялся в течение нескольких лет, редко и маловероятно, что он полностью удаляет этот API.
(Нельзя сказать, что случаи полного выхода бота из строя в прошлом вообще не происходили (например, dAhub), но обычно разработчики могут исправить их и полностью вернуть в онлайн, обычно в короткие сроки. )

Еще одна концепция, с которой вы должны быть знакомы, - это парсинг HTML, , который представляет собой метод извлечения и загрузки HTML-кода, предназначенного для браузеров с серверов DeviantArt, в бот и его анализ.

Профессионалы чаще всего рекомендуют использовать официальные и общедоступные API, и вы не слышите, чтобы кто-то рекомендовал вам использовать внутренние API.Однако вопреки их предупреждениям dADroid, dAbot (и dAhub, насколько мне известно) все используют внутренний API DiFi с добавлением некоторого парсинга HTML, потому что он более мощный и переносимый.

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

dADroid имеет отличную утилиту парсинга HTML и DiFi, встроенную прямо в него.

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

Итак, что использовать?

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

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

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

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

Тем не менее, если вы хотите использовать PHP, вы можете использовать исходный код dADroid в своем проекте. Вы можете увидеть список истории версий здесь: dadroid.ir / Changelog.txt


Шаг 3 - средства хранения

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

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

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

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

Для файлового хранилища обратите внимание на XML, YAML и JSON. Не пугайтесь строк текста! Они просто написаны, чтобы помочь вашему боту запомнить, что происходит после каждого запуска.

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

В настоящее время стандартным способом записи и доступа к данным в базах данных является язык SQL (читай SEQUEL), обозначающий S tructured Q uery L anguage.

Самыми популярными серверами SQL (которые вы можете использовать в своем проекте) на данный момент являются MySQL и MariaDB . Это сестринские базы данных, и вы можете использовать их как взаимозаменяемые. Первый в настоящее время разрабатывается Oracle, той же компанией, которая поддерживает Java (не путать с JavaScript).

Если вы когда-нибудь слышали о WordPress, он использует одну из этих баз данных для хранения своих данных, и я почти уверен, что DeviantArt также использует нечто подобное.

Есть более легкая версия SQL, которая не требует сервера и находится на диске, она называется SQLite .Вы можете использовать его для своего стартового проекта. Интересный факт: Google все время использует SQLite в своей Android OS . Так что, если у вас в настоящее время есть телефон с ОС Android, вполне вероятно, что ваш телефон использует SQLite!

Microsoft также использует свой собственный и платный форк SQL-сервера, который ориентирован на бизнес, и вам не о чем беспокоиться.

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

Вот несколько отличных ресурсов для изучения SQL:

  1. www.w3schools.com/sql/
  2. www.codecademy.com/learn/learn…

Шаг 4 - логика, пользователь настройки и графический интерфейс

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

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

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

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

При кодировании лучше всегда следовать практике DRY: D , а не R epeat Y самостоятельно. Это означает, что избегайте копирования и вставки кода, который, поверьте мне, делает все в сто раз сложнее. Вместо этого разделите свой код на разные значимые части, которые можно использовать повторно.

Вы можете узнать больше о том, как следовать этому шаблону тщательно разработанным способом под названием MVC :

  1. Общие сведения о контроллере представления модели
  2. Что такое MVC?
  3. Википедия по модели – представлению – контроллеру
  4. Учебное пособие по шаблонам MVC
Я не собираюсь углубляться в это, так как уже написано много хороших статей.Просто помните, держите все в порядке и держите свой код чистым и хорошо комментируемым, даже если вы единственный, кто работает над проектом, вы не знаете, будет ли кто-то другой работать над ним завтра. В противном случае вы скоро столкнетесь с некоторыми непредсказуемыми проблемами, как у меня, когда код dADroid становится настолько беспорядочным, что мне нужно полностью переписать.

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

Шаг 5 - запуск бота на сервере

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

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

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

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

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

Заключительные примечания - социальная сторона бота

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

Не делайте того, что не нравится сотрудникам DeviantArt, они заблокируют вас без всякой разумной причины, быстрее, чем вы думаете. Я выучил этот на собственном опыте .


И на DeviantArt стало стандартным условием отмечать сообщения, сгенерированные вашим ботом, с пометкой «Я бот» или аналогичными пометками. Это особенно важно, если ваш бот генерирует ответы, чтобы каким-то образом идентифицировать его как бота.(Как и любой другой экземпляр dAhub и dADroid-bot. Насколько мне известно, все популярные боты на DeviantArt делают это.)

Заключение

И вот, список всех важных моментов, которые я мог бы придумать для рабочий и практичный бот Deviant Art! Я надеюсь, что вы узнаете что-то новое по пути и получите большой опыт написания собственного бота.

Не забудьте проверить DeviousBots на предмет некоторых примеров полезных ботов на DeviantArt, и отправьте туда своего собственного бота, если вы сделали отличный!

Предлагаем вам комментировать любые возникшие у вас вопросы или проблемы, которые могут возникнуть в будущем.Я постараюсь ответить на них, когда смогу!

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

Удачного дня.

Написание интерактивных ботов (документация Zulip API)

Это руководство посвящено написанию и тестированию интерактивных ботов. Мы предполагаем знакомство с нашим руководством по запуску ботов.

На этой странице вы найдете:

  • A шаг за шагом руководство о том, как настроить среду разработки для написания ботов со всеми нашего прекрасного инструментария, который упростит написание и тестирование вашей работы.
  • Руководство по написанию бота.
  • Руководство по добавлению бота в Zulip.
  • Руководство по тестированию результатов работы бота.
  • Документация по API бота.
  • Распространенные проблемы при разработке / запуске ботов и их решения.

Установка разрабатываемой версии пакета ботов Zulip

  1. git clone https://github.com/zulip/python-zulip-api.git - клонировать репозиторий python-zulip-api.

  2. cd python-zulip-api - перейдите в свой клонированный репозиторий.

  3. python3 ./tools/provision - установите все требования в Python virtualenv.

  4. Вывод Provision завершится командой вида source ... / activate ; запустите эту команду, чтобы войти в новый файл virtualenv.

  5. Завершено . Теперь вы должны увидеть имя вашего venv перед подсказкой, например (zulip-api-py3-venv) .

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

Написание бота

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

Каждый бот построен на этой структуре:

  класс MyBotHandler (объект):
    '' '
    Строка документации этого бота.'' '

    def использование (self):
        return '' 'Ваше описание бота' ''

    def handle_message (self, message, bot_handler):
        # добавьте сюда свой код

handler_class = MyBotHandler
  
  • Имя класса (в данном случае MyBotHandler ) может быть определено вами и должно совпадать с именем вашего бота. Чтобы зарегистрировать класс своего бота, настройте последнюю строку handler_class = MyBotHandler в соответствии с вашим название класса.

  • Каждому боту необходимо реализовать функции

    • использование (самостоятельно)
    • handle_message (self, message, bot_handler)
  • Эти функции описаны в следующем разделе.

Добавление бота в Zulip

Система ботов

Zulip находится в репозитории python-zulip-api.

Структура экосистемы ботов выглядит следующим образом:

  zulip_bots
└───zulip_bots
    ├───боты
    │ ├───bot1
    │ └───bot2
    │ │
    │ ├───bot2.py
    │ ├───bot2.conf
    │ ├───doc.md
    │ ├───requirements.txt
    │ ├───test_bot2.py
    │ ├─── активы
    │ │ │
    │ │ └───pic.PNG
    │ ├─── крепления
    │ │ │
    │ │ └───test1.json
    │ └─── библиотеки
    │ │
    │ └───lib1.py
 ├─── lib.py
 ├─── test_lib.py
 ├─── run.py
 └─── Provision.py
  

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

Тестирование вывода бота

Если вы просто хотите посмотреть, как бот реагирует на сообщение, но не хотите настраивать его на сервере, у нас есть небольшой инструмент, который может вам помочь: zulip-terminal

Примеры вызовов ниже:

 > преобразователь zulip-terminal

Введите ваше сообщение: «12 метровый двор»
Ответ: 12.0 метр = 13,12336 ярда

> zulip-terminal -b ~ / followup.conf продолжение

Введите ваше сообщение: «Задача выполнена»
Ответ: поток: продолжение темы: [email protected]
          от [email protected]: Задача выполнена
  

Обратите внимание, что аргумент -b (он же --bot-config-file ) предназначен для необязательной третьей стороны config (например, ~ / giphy.conf), который применяется только к определенным типам ботов.

Бот API

В этом разделе описаны функции, доступные боту, и структура файла конфигурации бота.

С помощью этого API вы можете

  • перехватывать, просматривать и обрабатывать сообщения, отправленные пользователями Zulip.
  • рассылает новые сообщения в качестве ответов на обработанные сообщения.

С этим API вы не сможете

  • изменить перехваченное сообщение (необходимо отправить новое сообщение).
  • отправлять сообщения от имени или выдавать себя за других пользователей.
  • перехватывать личные сообщения (кроме личных сообщений с ботом в качестве явный получатель).

использование

использование (собственное)

вызывается для получения информации о боте.

Аргументы
  • self - экземпляр, на котором вызывается метод.
Возвращаемые значения
  • Строка, описывающая функциональность бота
Пример реализации
  def Использование (самостоятельно):
    возвращение '''
        Этот плагин позволит пользователям отмечать сообщения
        в качестве последующих пунктов.Пользователи должны предисловие
        сообщения с «@followup».
        Перед запуском обязательно создайте поток
        называется «продолжение», которое ваш пользователь API может отправить.
        '' '
  

handle_message

handle_message (self, message, bot_handler)

обрабатывает сообщение пользователя.

Аргументы
  • self - экземпляр, на котором вызывается метод.

  • Сообщение

    - словарь, описывающий сообщение Zulip

  • bot_handler - используется для взаимодействия с сервером, например.г. для отправки сообщения

Возвращаемые значения

Нет.

Пример реализации
  def handle_message (self, message, bot_handler):
     original_content = сообщение ['содержание']
     original_sender = сообщение ['sender_email']
     new_content = original_content.replace ('@ followup',
                                            'от% s:'% (original_sender,))

     bot_handler.send_message (dict (
         type = 'поток',
         to = 'продолжение',
         subject = сообщение ['sender_email'],
         content = new_content,
     ))
  

bot_handler.send_message

bot_handler.send_message (сообщение)

отправит сообщение от имени пользователя-бота. Как правило, это меньше удобнее, чем send_reply , но обеспечивает дополнительную гибкость о том, куда отправлено сообщение.

Аргументы
  • сообщение - словарь, описывающий сообщение, которое будет отправлено ботом
Пример реализации
  bot_handler.send_message (dict (
    type = 'stream', # может быть 'stream' или 'private'
    to = stream_name, # либо имя потока, либо адрес электронной почты пользователя
    subject = subject, # тема сообщения
    content = message, # содержание отправленного сообщения
))
  

bot_handler.send_reply

bot_handler.send_reply (сообщение, ответ)

ответит на инициирующее сообщение в том же месте, что и оригинал. сообщение было отправлено с содержанием ответа response .

Аргументы
  • сообщение - Словарь, содержащий информацию о сообщении, на которое нужно ответить (предоставляется handle_message ).
  • response - Ответное сообщение от бота (строка).

bot_handler.update_message

bot_handler.update_message (сообщение)

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

Аргументы
  • сообщение - словарь, определяющий, какое сообщение редактировать, и новое содержание
Пример

Из zulip_bots / bots / incrementor / incrementor.py :

  bot_handler.update_message (dict (
    message_id = self.message_id, # идентификатор сообщения для обновления
    content = str (self.number), # строка, которой нужно обновить сообщение
))
  

bot_handler.storage

Распространенная проблема при написании интерактивного бота заключается в том, что вы хотите иметь возможность хранить немного постоянного состояния для бота (например, для RSVP бот, RSVP). Для достаточно сложного бота вам понадобится свою базу данных, но для более простых ботов мы предлагаем удобный способ код бота для постоянного хранения данных.

Интерфейс для этого: bot_handler.storage .

Данные хранятся в базе данных Zulip Server. У каждого пользователя бота есть ему доступна независимая квота хранилища.

Рекомендации по производительности

Так как каждый доступ к bot_handler.storage будет включать цикл туда и обратно к серверу мы рекомендуем писать ботов, чтобы они bot_handler.storage.get в начале handle_message , а single bot_handler.storage.put в конце, чтобы отправить состояние в сервер.Мы планируем предложить контекстного менеджера, который позаботится об этом автоматически.

bot_handler.storage.put

bot_handler.storage.put (ключ, значение)

сохранит значение , значение в ключе записи .

Аргументы
  • ключ - строка UTF-8
  • Значение
  • - строка UTF-8
Пример
  bot_handler.storage.put ("foo", "bar") # установить запись "foo" на "bar"
  
bot_handler.storage.get

bot_handler.storage.get (ключ)

получит значение для записи , ключ .

Аргументы
Пример
  bot_handler.storage.put ("foo", "bar")
print (bot_handler.storage.get ("foo")) # print "bar"
  
bot_handler.storage.contains

bot_handler.storage.contains (ключ)

проверит, существует ли запись , ключ .

Аргументы
Пример
  bot_handler.storage.contains ("foo") # Ложь
bot_handler.storage.put ("фу", "бар")
bot_handler.storage.contains ("foo") # Верно
  
bot_handler.storage marshaling

По умолчанию bot_handler.storage принимает любой объект в качестве ключей и values, если он поддерживает JSON. Внутренне объект затем получает преобразован в строку UTF-8. Вы можете указать настраиваемый маршалинг данных установив функции bot_handler.storage.marshal и bot_handler.storage.demarshal .Эти функции анализируют ваши данные на каждый звонок на помещает и получает соответственно.

Файл конфигурации

  [api]
 key = 
 email = 
 site = 
  
  • key - API-ключ, который вы создали для бота; вот откуда Зулип знает запрос от авторизованного пользователя.

  • email - адрес электронной почты бота, например [email protected]

  • site - URL вашей среды разработки; если вы работаете над среда разработки, размещенная на вашем компьютере, используйте локальный: 9991

Написание тестов для ботов

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

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

Простой пример

Давайте посмотрим на простой набор тестов для helloworld бот.

  из zulip_bots.test_lib импорт StubBotTestCase

класс TestHelpBot (StubBotTestCase):
    bot_name: str = "helloworld"

    def test_bot (self) -> Нет:
        dialog = [
            ('', 'бип буп'),
            ('помощь', 'бип-буп'),
            ('фу', 'бип буп'),
        ]

        self.verify_dialog (диалог)
  

Бот helloworld отвечает «бип-буп» на каждое @-упоминание этого сообщения. Мы хотим, чтобы наш тест подтвердил, что бот действительно делает это.

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

Лучший способ узнать о тестах ботов - прочитать все существующие тесты в ботов подкаталогов.

Тестирование вашего теста

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

Расширенное тестирование

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

Тестирование ботов с помощью конфигурационных файлов

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

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

  с self.mock_config_info (dict (api_key = 12345)):
    # self.verify_reply (...)
  

mock_config_info () заменяет фактический шаг чтения конфигурации из файла system и вместо этого выдает вашему тесту "фиктивные данные".

Тестирование ботов с доступом в Интернет

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

  с self.mock_http_conversation ('test_fixture_name'):
    # себя.assert_bot_response (...)
  

mock_http_conversation (fixture_name) исправляет requests.get и возвращает указанные данные в файле fixtures / {fixture_name} .json . Используйте следующий код JSON в качестве основы для нового светильники:

  {
  "запрос": {
    "api_url": "http://api.example.com/",
    "params": {
    }
  },
  "ответ": {
  },
  "response-headers": {
  }
}
  

Для примера посмотрите giphy-бота.

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

Примеры

Оцените наших ботов чтобы увидеть примеры тестов ботов.

Общие проблемы

Направление будущего

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

  • Запускать напрямую с помощью API Zulip call_on_each_message , который как работает приведенная выше реализация.Это отлично подходит для быстрого разработка с минимальной настройкой.
  • Запуск на простом сервере веб-сервера Python, обработка сообщений полученный от исходящей интеграции веб-перехватчиков Zulip.
  • Для ботов, объединенных в основную кодовую базу Zulip, включенную через в веб-интерфейсе Zulip, без необходимости развертывания кода.

Простой способ написать бот для Telegram

В этой статье я покажу, как создать эхо-бота с помощью Corvid от Wix.Это быстро, просто и абсолютно БЕСПЛАТНО.

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

Давайте создадим простого бота, который будет отвечать тем же сообщением, что и он. Назовем его EchoBot.

Вот как выглядит поток, который нам нужно реализовать:

Рабочий процесс сервера сообщений
  1. Пользователь отправляет сообщение EchoBot.
  2. Сервер принимает это сообщение и создает всю необходимую логику.
  3. Сервер реагирует на действия пользователя, отправляя сообщение с помощью Telegram API.

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

Также вам понадобится сервер. Мы будем использовать сайт Wix с Corvid, потому что это просто и бесплатно. Создайте сайт Wix и включите Corvid (выполните шаги один и два в статье).

Вам также может понравиться: Государственное управление в Корвиде.

Шаг 1

Чтобы реализовать первый шаг в нашем потоке, нам нужно создать соединение между ботом Telegram и вашим сайтом Wix (серверная часть). Для этого воспользуемся HTTP-функциями. Чтобы создать функцию HTTP, добавьте файл с именем http-functions.js в серверную часть своего сайта. В этом файле вы можете найти пример функции. Очистите этот файл и напишите следующую функцию:


После публикации сайта ваша конечная точка будет доступна по адресу:

https: // {user_name}.wixsite.com/{site_name}/_functions/updatesLisner

Или для сайтов премиум-класса:

https: // www. {User_domain} / _functions / updatesLisner

Затем вам нужно установить эту конечную точку в качестве веб-перехватчика для вашего бота. Для этого вам необходимо сделать HTTP-запрос GET. Вы можете сделать это из браузера:

https://api.telegram.org/bot/setWebhook?url=

Вы должны получить такой ответ:

{"ok": true, "result": true, "description": "Webhook был установлен"}

После этого первый шаг готов!

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

Ошибки и журналы в реальном времени

Шаг 2

Упростить пример логики нашего бота довольно просто: создать echo. Давайте извлечем текст сообщения из обновления . Согласно спецификации объекта обновления:

const text = update.message.text;

Итак, у нас есть текста , который нам нужно отправить обратно в чат.

Шаг 3

Теперь нам нужно ответить пользователю sendMessage.Создайте эту функцию в backend / http-functions.js :


Эта функция просто делает запрос POST с двумя параметрами в теле:

1. текст .

2. chat_id .

У нас уже есть текста из шага два. Мы можем получить chat_id из объекта обновления:

const chatId = update.message.chat.id;

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


Наконец, опубликуйте свой сайт и отправьте сообщение своему боту!

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

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

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

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