Как написать скрипт для переписки в БроБоте?
В этой статье мы расскажем, как можно написать скрипт для переписки в Боте. Для написания скрипта потребуется определенный навык программирования на каком-либо языке. Если у вас с этим сложности, то вы можете написать нам на почту hello@brobot.ru, и мы вам поможем. Но услуга написания скрипта платная и предоставляется за 1000 рублей минимум, в зависимости от желаемой сложности.
Итак как работает скрипт?
В JS-скрипте нужно определить две функции: getAnswer и getTemplates.
getAnswer()
getAnswer() получает на вход историю переписки, возвращает строку ответа или null, если бот не имеет ответа (в этом случае ответить можно будет вручную на вкладке «Переписка»). История передается в виде объекта, основные методы которого:
size() | возвращает количество сообщений в чате |
get(index) | возвращает сообщение чата по индексу (нумерация с нуля) |
last() | последнее сообщение в чате |
externalContact() | возвращает объект с информацией о собеседнике |
localContact() | возвращает объект с информацией об анкете, на которою пришло сообщение |
unansweredMessages() | последние входящие сообщения, на которые не было ответа |
getMessagesFromExternalContact() | все входящие сообщения чата |
getMessagesFromLocalContact() | все исходящие сообщения чата |
У объекта «сообщения» есть такие методы:
isIncoming() | является ли сообщение входящим |
isOutgoing() | является ли сообщение исходящим |
getContent() | текст сообщения |
Для отладки у getAnswer есть второй аргумент — log. На нем можно делать так:
log.info("No message id found");
Cообщение пойдет в файл log.txt в папке с ботом.
getTemplates()
getTemplates должна возвращает массив имен кофигурируемых шаблонов скрипта. Если у скрипта есть шаблоны (getTemplates вернула непустой массив), значения шаблонов пользователь задает в интерфейсе при настройке задания. В процессе работы все значения {имя_шаблона} заменяются на сконфигурированые значения.
Пример
function getTemplates() { // тут указывается список шаблонов, используемых в сообщениях ниже // например: return ["шаблон1", "шаблон2", "шаблон3"]; // если шаблонов нет, то просто: return []; return ["link"]; } function getNextAnswer(chislo_otpravlennih) { // здесь задаем последовательность ответов // можете сделать необходимое количество ответов в формате: case X: return "ответ"; // где X - это количество УЖЕ отправленных сообщений в истории переписки // то есть case 0 - это самый первый ответ, case 1 - это второй ответ и тд // не забывайте, что можно использовать синонимы (как в случае case 0) и шаблоны ({link} в случае case 2) switch (chislo_otpravlennih) { case 0: return "{Привет!|Доброго времени суток!}"; case 1: return "Извини что так вот пишу, но мы тут набираем лётчиков в команду в новой игре."; case 2: return "Хорошо, вот тут обзор игры {link}, посмотри, почитай."; case 3: return "Окей, если надумаешь зарегистрироваться, напиши потом ник в игре, добавлю в друзья."; } // эту строчку надо оставить return null; } function getAnswer(hist) { // это основная функция скрипта с алгоритмом, тут можно ничего не менять var otpravlennie = hist.getMessagesFromLocalContact(); var chislo_otpravlennih = otpravlennie.size(); var otvet = getNextAnswer(chislo_otpravlennih); if (otvet === null) return null; else if (chislo_otpravlennih > 0 && otpravlennie.get(chislo_otpravlennih - 1).content().trim() == otvet.trim()) return null; else return otvet; }
Если у вас есть вопросы, задавайте их в комментариях к статье, мы будем ее дополнять и развивать.
Хотите получить БроБот бесплатно?
Присылайте нам кейсы своих успешных проектов с БроБотом, мы опубликуем его в историях успехов и мы поделимся с Вами безлимитным тарифом!
Прислать свой кейс
Андрей Кароев, - 17 октября, 2015
Ссылка
Хотел проверить скрипт примера в деле — тут же ошибка «содержит ошибку Input length = 1», причём дважды. В чем дело?
Команда BroBot, - 17 октября, 2015
Ссылка
Попробуйте сохранить файл в кодировке UTF-8. Если не поможет, пришлите нам на почту hello@brobot.ru файл, который вы создали.
Андрей Кароев, - 20 октября, 2015
Ссылка
Да, спасибо, дело было в кодировке. А вот касательно метода last(). Он, как я понимаю, возвращает объект «сообщение», из которого в свою очередь можно выудить текст методом GetContent(). Или что-то неверно?
Команда BroBot, - 20 октября, 2015
Ссылка
В недавнем обновлении кодировка уже не вызывает проблем. Касаемо last() все верно, только getContent() с маленькой буквы, не ошибитесь.
Андрей, - 18 октября, 2015
Ссылка
Скажите пожалуйста, а можно сделать так чтобы когда человек отвечал мне в вк, бот отправлял ему картинку? Тоесть можно в JS-скрипт вставить ссылку на картинку и чтобы у человека сразу открывалась картинка (как в браузере, не переходя по ссылке)
Команда BroBot, - 19 октября, 2015
Ссылка
Вам сюда http://qsbot.reformal.ru/proj/?ia=814182
Василий,http://invest-free.ru - 18 октября, 2015
Ссылка
Немного не понял. А как делать ответ в зависимости от ответа собеседника?
К примеру, я спрашиваю сначала у человека разрешение, интересна ли ему информация, которую предлагаю. Как сделать остановку алгоритма, если он говорит «нет»?
Команда BroBot, - 19 октября, 2015
Ссылка
Если из getAnswer() вернуть null, то скрипт ничего не ответит (но даст возможность ответить вручную, что можно проигнорировать). Соответственно вам в скрипте надо проанализировать переписку и решить, ответить что-нибудь или нет.
Олег, - 10 ноября, 2015
Ссылка
Хочу сделать простенький бот. Что бы в групповом чате бот реагировал только тогда, когда обращение идет к нему. К примеру, имя бота «Бот»:
Олег: -Привет народ.
Ваня: -Привет.
Саша: -Привет.
Петя: -Бот, как дела?
Бот: -Хорошо.
Такое вообще возможно реализовать, если да то как? Я изучал с++, должен достаточно легко понять (джава очень похож), просто давненько в нем не кодил)
Команда BroBot, - 10 ноября, 2015
Ссылка
Возможно, но сейчас можно будет сделать только так, что все сообщения без обращения будут ожидать ручного ответа (то есть совсем проигнорировать сейчас не получится).
Ulala, - 13 декабря, 2015
Ссылка
Еще не очень разбираюсь в программировании, но можно ли сделать то же самое на Python, и будет ли прога поддерживать этот скрипт?
Команда BroBot, - 14 декабря, 2015
Ссылка
Нет, на питоне нельзя. Мы можем помочь написать скрипт, стоимость от 1500р в зависимости от сложности скрипта.
Олег, - 8 июня, 2016
Ссылка
Можете написать самый простейший скрипт?Или кто написал скрипт киньте мне на почту плиз..Я вообще в этом не разбираюсь.oleg2002anisimov@mail.ru
Андрей, - 13 декабря, 2015
Ссылка
Здравствуйте! Подскажите пожалуйста. Не как не могу написать самый простейший для бота скрипт который бы просто при каждом входящем сообщении в ВК отвечал пользователю глупо матами. Не как не могу понять как написать такой скрипт. Знаю у знакомого стоит Бро Бот и у него он постоянно матерится..чтобы я не написал ему в вк. Как сделать так же? Пожалуйста подскажите.
Команда BroBot, - 14 декабря, 2015
Ссылка
Добрый день, услуга по написаний скрипта у нас от 1500р в зависимости от сложности. Напишите нам на почту, если интересно.
Ольга, - 16 декабря, 2015
Ссылка
А как боту добавить диалогов( Простите если докапываюсь, крч у меня одна беседа где бот от моей странички пишет, но я хочу добавить ещё чтоб контролить его, и писать от его именни( Помогите плииз
Команда BroBot, - 20 декабря, 2015
Ссылка
Напишите нам в почту более подробно, пожалуйста. Постараемся помочь.
FedrBodr,https://vk.com/fedrbodr - 8 февраля, 2016
Ссылка
Приветствую!
Я не совсем понял из статьи можно ли настроить бота на ответ по ключевому слову.
Например
Бот — Привет как дела?
А) вариант:
Человек — Ничего
Бот — Тогда может хочешь развлечься — вот те ссылка на на на.
Б) вариант:
Человек — Достали
Бот — Прости бро больше не побеспокою.
Команда BroBot, - 10 февраля, 2016
Ссылка
Наиболее простой способ — сделать это в обучающемся боте.
Фёдор, - 28 февраля, 2016
Ссылка
А можно совместить скрипт с обучаемым ботом?
Команда BroBot, - 4 марта, 2016
Ссылка
Нет, со встроенными вариантами переписки совместить нельзя.
Владимир, - 1 марта, 2016
Ссылка
У меня не работает функция log.info(«No message id found»);
Ошибка:
ReferenceError: «log» is not defined
Orlean, - 25 марта, 2016
Ссылка
Что именно и в каком виде возвращается при externalContact()? Никак не могу допереть, как проверить.
Владимир, - 15 апреля, 2016
Ссылка
Где можно получить информацию о работе с объектами, возвращаемыми externalContact()? А конкретней, как я могу получить информацию о имени собеседника?
Команда BroBot, - 19 апреля, 2016
Ссылка
externalContact().getAlias() можно попробовать. Кроме имени и города ничего там нет. Еще возраст, но он часто отсутствует и вероятно будет убран впоследствии.
А вообще если нужно имя вставлять, то лучше {buddyname} использовать
Алёна, - 20 августа, 2017
Ссылка
Какой командой на данный момент получить возраст?
Алёна, - 20 августа, 2017
Ссылка
уже сама получила ответ на свой вопрос вызвав Object.keys(hist.externalContact()); чтобы получить свойства и методы объекта. нужна мне была функция getAge
Олег, - 16 апреля, 2016
Ссылка
А что возвращает localContact ? какой обьект, какая в нем информация есть? Не хватает более детальной информации.
Команда BroBot, - 19 апреля, 2016
Ссылка
Ежели Вам надо имя вставлять куда-то, то лучше {buddyname} юзать
Олег, - 23 апреля, 2016
Ссылка
Нет не надо мне имя, хочу знать что могу использовать при создании скрипта
Команда BroBot, - 21 июля, 2016
Ссылка
поддержку оказываем через почту support@brobot.ru, тут неудобно очень и сюда редко смотрим, уж простите, друзья.
Slava, - 14 мая, 2016
Ссылка
Как сделать так, что бы бот отвечал по-порядку заготовленные фразы, начиная с case 0: return, а потом дойдя до последней фразы, начинал писать рандомно те-же фразы только не по-порядку, и что бы бот реагировал на все что ему пишут в чате (смайлы, стикеры, буквы, символы, знаки)
Команда BroBot, - 21 июля, 2016
Ссылка
поддержку оказываем через почту support@brobot.ru, тут неудобно очень и сюда редко смотрим, уж простите, друзья.
Slava, - 14 мая, 2016
Ссылка
По вашему примеру скрипта, там пишет по-порядку, а потом начинает повторять последнюю фразу(
Команда BroBot, - 21 июля, 2016
Ссылка
поддержку оказываем через почту support@brobot.ru, тут неудобно очень и сюда редко смотрим, уж простите, друзья.
Аркадий, - 26 мая, 2016
Ссылка
а можно ли писать скрипт … нормальный который будет реально отвечать на вопросы?
а не тупо писать бред в зависимости от количества вопросов
Команда BroBot, - 21 июля, 2016
Ссылка
Можем, но только через почту support@brobot.ru
Александр, - 4 июня, 2016
Ссылка
Скажите, а есть ли возможность — отсылать из javascript запрос на php?
Александр, - 4 июня, 2016
Ссылка
XMLHttpRequest() — пишет NotFound0
Команда BroBot, - 21 июля, 2016
Ссылка
Можем, но только через почту support@brobot.ru
Команда BroBot, - 21 июля, 2016
Ссылка
Можем, но только через почту support@brobot.ru
Ян, - 28 июня, 2016
Ссылка
У меня вопрос,как сделать допустим
Человек: «б,скажи текст»
Бот превращает текст в аудио текст
Команда BroBot, - 29 июня, 2016
Ссылка
Сложный вопрос. Спросите на форуме — там скорее всего помогут.
BalMexO,https://www.youtube.com/c/BalMexOShow - 6 июля, 2016
Ссылка
Есть ли готовй скрипт чтобы бот мог общятся с людми
пример!
Юзер: Бот Привет
Бот: Привет Юзер
Юзер: Бот Инфо
Бот: картинка (с инструкцией)
Юзер: Бот 2+2
Бот: 4
Юзер: Бот Няш
Бот: картинка (бот находит картинку няшки)
Примерно Такой
И чтобы можно было добавлять ищо варианты 😀
Команда BroBot, - 21 июля, 2016
Ссылка
Мы тут поддержку не оказываем, просьба написать на support@brobot.ru, всем помогаем =)
Василий, - 8 июля, 2016
Ссылка
Здравствуйте! Как можно сделать, что бы на сообщения бот не отвечал, а пересылал их в л.с. профиля-менеджера? Заранее благодарен за ответ!
Команда BroBot, - 21 июля, 2016
Ссылка
написали вам в почту
Вика, - 14 августа, 2016
Ссылка
Если можно — напишите мне тоже на почту как это сделать. Спасибо!
(Здравствуйте! Как можно сделать, что бы на сообщения бот не отвечал, а пересылал их в л.с. профиля-менеджера? Заранее благодарен за ответ!)
Команда BroBot, - 17 августа, 2016
Ссылка
ну пока никак
Николай, - 29 августа, 2016
Ссылка
Доброго времени суток! Как можно научить бота отвечать по словам. Например:
Список моих команд!
1. ? Демотиватор — Делает про тебя демотиватор.
2. ? Секс поза — Кидает тебе случайную секс позу.
3. ? Новости — Сообщает последние новости.
4. ? Шутка — Весело шутит.
5. ? Факт — Интересный факт.
6. ? Загадка — Задает тебе загадку.
——————————————————————————
Чат:
Пользователь:?
Бот: Зимой и летом одним цветом.
П: ?
Б: 69.
Команда BroBot, - 14 сентября, 2016
Ссылка
напишите нам на support@brobot.ru
Yasuro, - 4 сентября, 2016
Ссылка
Здравствуйте. Как создать переменную или объект, который будет храниться на протяжении всего диалога?
Команда BroBot, - 14 сентября, 2016
Ссылка
напишите нам на support@brobot.ru
Евгений, - 3 октября, 2016
Ссылка
Здравствуйте!
Имеется 10 сообщений, которые необходимо отправить поочередно.
(Интервал отправки сообщений от 10 до 60 минут)
Пример:
БроБот: Сообщение №1
Пользователь: ответ
БроБот: Сообщение №2
Пользователь: ответ
БроБот: Сообщение №3
Пользователь: ответ
и т.д.
В настройках переписки нашел только «интелектуальную переписку», обучение. (Но это не требуется)
Что необходимо сделать, чтобы получить желаемый результат на выходе?
Важно: может быть так, что между сообщениями БроБота пользователь будет успевать несколько сообщений, очередность сбиваться не должна.
Команда BroBot, - 13 октября, 2016
Ссылка
Напишите пожалуйста на форум с подробным описанием проблемы. В комментариях больше не саппортим.
Создаем чат бота вк с командами | Бесплатная программа бот для ВКонтакте (Vk) и Одноклассниках (Ok).,https://brobot.ru/chatbot2/ - 14 ноября, 2016
Ссылка
[…] одной из прошлых статей мы создавали простой скрипт для […]
Александр, - 16 декабря, 2016
Ссылка
Хочу сделать скрипт для того чтоб мой бот смог отвечать на сообщения приходящие в группу, как это сделать?
Команда BroBot, - 23 января, 2017
Ссылка
Пока никак.
Иван, - 26 декабря, 2016
Ссылка
Привет!
Используем страницы Вк для продаж, приемов заказов. Обработали много лидов, оформили несколько тысяч продаж. Стоит вопрос об автоматизации. Так как переписки ведутся с одной целью, то они достаточно однотипны (используем скрипты и быстрые вразы).
Вопрос: возможно ли, используя нашу огромную базу переписок, сделать так, чтобы бот делал эту работу вместо человека?
Команда BroBot, - 26 декабря, 2016
Ссылка
Естественно. Даже нужно)
Иван, - 11 января, 2017
Ссылка
Можно заказать у Вас такую услугу? Свяжитесь, пожалуйста со мной.
Команда BroBot, - 14 января, 2017
Ссылка
Мы не пишем скрипты. Спросите на форуме — там были умельцы.
Настройка параметров переписки | Бесплатная программа бот для накрутки ВКонтакте, Инстаграм и Одноклассников.,https://brobot.ru/42b42a1b/ - 28 февраля, 2017
Ссылка
[…] Как написать скрипт для переписки в БроБоте? […]
Илья, - 16 апреля, 2017
Ссылка
Пожалуйста, можете скинуть оч. простой скрипт, если я ему написал привет то ответить Добрый день, мне нужно понять, как работает это все, а у вас написаны какие-то команды только и сразу сложный скрипт
Антон, - 6 мая, 2017
Ссылка
Привет!
Как сделать, чтобы бот отвечал только в конкретной группе, а не во всех диалогах контакта?
Команда BroBot, - 17 мая, 2017
Ссылка
Саппортим только на форуме и по почте.
Андрей, - 7 мая, 2017
Ссылка
Можете скинуть готовый скрипт для БроБота.
Команда BroBot, - 16 мая, 2017
Ссылка
так в примере и есть готовый скрипт.