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

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

Как правильно пройти данный урок?

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



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

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

Итак, как отправить информацию о новом заказе личным сообщением в вк?

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

Добавьте блок Условия и пропишите в нём:

$channelType == "vk"



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

Создайте связь от else и напишите:

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



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

Подключите канал ВК.

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





Воспользуйтесь этой инструкцией для подключения канала ВК.

Убедитесь, что в сценарии есть глобальный $TEXT

В вашем сценарии обязательно должен быть блок Интенты с глобальным интентом $TEXT. Если вы его уже добавили, переходите к шагу 5.

Если вы его не добавляли, то сделайте следующее:

Перейдите на вкладку Сценарий вашего бота.

В любом месте сценария кликните + ДОБАВИТЬ ЭКРАН и добавьте блок Интенты.



Кликните Создать интент.



Скопируйте и вставьте в поле интента:

$TEXT

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



Соедините $TEXT со стартовым (самым левым и верхним) экраном:



Такой глобальный блок $TEXT обязательно должен быть в каждом боте, который будет работать в ВК.

Добавим экран приветствия

Свяжите вариант условий $channelType == "vk" с блоком Текст, в который скопируйте и вставьте:

Здравствуйте, $rawRequest.user_info.first_name!
Я помогу вам оставить заявку на оказание наших услуг.
С ценами и акциями вы можете ознакомиться по данной ссылке: (ссылка)


Вот что у нас получится:



Здесь мы вытаскиваем имя из профиля вк с помощью переменной $rawRequest. Именно поэтому тестировать данный сценарий нужно будет в ВК, а не в тестовом виджете Aimylogic.

Уточним вид нужной услуги

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



Оформите блок Ввод текста следующим образом:

Сообщение:

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

Имя переменной:

service



И нажмите Сохранить.

Вот что у нас получается:



Публикация

После внесения изменений в сценарий, нажмём Опубликовать:



и дождёмся публикации в канал:



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

Пишем сообщение боту

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

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

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



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

Если бот не отвечает, проверьте, правильно ли следовали шагам выше, и обратитесь к этой статье.

Больше ничего пока писать боту не нужно.

Оформим сообщение для отправки

Кликните на Переход после ввода $service и создайте новый блок Условия:



Скопируйте и вставьте в Условия следующее:

$text = "Получен новый заказ!" + "\n" + "Ссылка на профиль клиента: " + "https://vk.com/id" + $rawRequest.object.user_id + "Вид услуги: " + $service





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

Разберём данное выражение

Здесь мы создаём переменную $text, в которую помещаем перечисленные элементы. Мы используем сложение строк (строка это название типа данных в языке программирования Javascript). То есть, мы складываем значения переменных, которые мы получили в ходе сценария, с текстом, который будет пояснять их значение. Также, используем $rawRequest.object.user_id, которая будет содержать значение id страницы пользователя. И добавим переносы строк с помощью \n.

$text - название переменной, которая будет содержать всё сообщение. Мы создаем эту переменную в данном блоке Условия.
- после переменной $text должен стоять пробел
= - оператор присвоения, с помощью которого мы будем записывать в переменную всё, что будет следовать далее
- после оператора присвоения также должен идти пробел
"Получен новый заказ!" - пишем текст сообщения. Он должен быть в кавычках.
+ - пробел, знак сложения, пробел
"\n" - этот элемент нужен для того чтобы сделать разрыв строк в вк (\n работает в вк и в чат-виджете). \n создает разрыв строк, и нам нужно также поместить этот элемент в кавычки ""
+ - пробел, знак сложения, пробел
"Ссылка на профиль клиента: " - снова текст в кавычках , и если мы хотим в сообщении передать пробел, то его нужно написать внутри кавычек
+ - пробел, знак сложения, пробел
"https://vk.com/id" - с помощью этого текста создаем ссылку на профиль
+ - пробел, знак сложения, пробел
$rawRequest.object.user_id - это переменная, поэтому её не нужно заключать в кавычки
+ - пробел, знак сложения, пробел
"Вид услуги: " - снова текст, который мы хотим передать в сообщении, в кавычках
+ - пробел, знак сложения, пробел
$service - переменная, поэтому её в кавычки заключать не нужно.

Соедините условие $text = "Получен новый заказ!" + "\n" + "Ссылка на профиль клиента: " + "https://vk.com/id" + $rawRequest.object.user_id + "Вид услуги: " + $service с новым блоком Условия, в который скопируйте и вставьте:

$num = _.random (1, 9223372036854775808)



В данном условии мы используем метод _.random, который генерирует случайное число от первого числа, указанного в скобках, до последнего. То есть, мы получаем случайное число от 1 до 9223372036854775808. Это число мы присваиваем переменной $num с помощью оператора присвоения =. Это нужно для работы с API вк, так как для каждого сообщения требуется случайное число, идентификатор сообщения.

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

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

Откройте страницу пользователя вк, откройте аватарку человека

В адресной строке выделите число, которое идёт сразу после photo. Это и есть id страницы вк.



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



Сформируем URL для HTTP-запроса, который будет отправлять сообщение в вк.

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

https://api.vk.com/method/messages.send?user_ids=



в конец строки вставьте без пробелов id страницы вк, который вы скопировали ранее:



далее, в конец получившейся строки скопируйте и вставьте следующее:

&random_id=${num}&message=${text}&access_token=



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



и в конец скопируйте и вставьте:

&v=5.102



Проверьте правильность составления URL:

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

Если всё верно, скопируйте всё, что у вас получилось.

Разберём этот Url:

messages.send - это метод API VK, который отправляет сообщение. Вам не нужно это менять.

user_ids= после этого должно быть значение ID страницы вк.

random_id - необходимый параметр для отправки сообщения в вк. В качестве случайного числа мы указываем значение переменной $num. Для этого пишем random_id=${num}

message - это сам текст сообщения. Здесь мы указываем содержание переменной $text. Мы создали её ранее в блоке Условие. Чтобы вытащить её значение, пишем message=${text}

access_token= здесь нужно указать токен доступа к сообществу. Его вы можете запросить в настройках группы согласно данной инструкции. Или просто используйте токен, если вы сохранили его на этапе публикации бота в вк.



v=5.102 - это версия протокола API vk на октябрь 2019 года. Актуальную версию протокола вы можете посмотреть здесь.

Оформим HTTP-запрос

От условия $num = _.random (1, 9223372036854775808) создайте связь с блоком HTTP-запрос.



Оформим блок HTTP-запрос:

метод POST

В строку URL скопируйте и вставьте URL, который мы получили шагом ранее.

в BODY скопируйте и вставьте:

{
"response": 484045
}




Вкладки RESPONSE и HEADERS заполнять не нужно.

После оформления HTTP-запроса, сохраните блок. Затем, соедините вариант "Завершен успешно" с сообщением:

Спасибо, ваша заявка отправлена! В ближайшее время с вами свяжется менеджер.



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

Вариант "Завершен с ошибкой" соедините с сообщением:

Что-то пошло не так. Ошибка $httpStatus.
Не страшно! Менеджер читает диалоги с ботом, так что мы свяжемся с вами.




На этот экран также можете добавить интенты для обработки сообщений, которые клиент может написать на этом этапе.

Вот и всё, готово. Опубликуйте изменения:



и дождитесь публикации в канал:



Тестируем

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

/start

Помните:

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

Либо чтобы в каждом блоке Интенты присутствовал неглобальный (без галочки Сделать доступным из любой точки сценария) интент $TEXT. Иначе ввод, не попавший в имеющиеся интенты, будет попадать в глобальный $TEXT и переводить на стартовый экран.


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