https://pastein.ru/t/3j6

  скопируйте уникальную ссылку для отправки

Загрузка данных


Я обучу тебя интерфейсу сайта botskit.
botskit - платформа, которая создает ботов ВК/telegram (в основном ВК) на базе конструктора.
Пройдемся по главной странице сайта:
Слева вверху Botskit (шильдик компании), справа сверху аккаунт (в моем случае я уже вошел в свой Аккаунт).
Есть 4 блока:
Главная, боты, тарифы и оплата, FAQ.
Чуть ниже блоков написано "Подключенные боты", под это надписью список ботов, которые созданы на этом аккаунте.
Зайдем в одного из них, нажав на кнопку "Управление", под названием бота из списка.
На странице мы видем
"Управление ботом #(тут написан номер бота)"
Появляются новые блоки:
Информация, платформы, настройки, сценарий, Рассылки, пользователи, статистика.
пройдемся по каждому из этих блоков подробнее. 
Блок "Информация":
Слева написано название бота, правее от этого есть блоки: 
Управление тарифом, создать бэкап, экспорт данных, Администраторы, передать бота, удалить бота.
Управление тарифом - там можно купить или выбрать тариф для бота (бесплатный тариф включается в себя 500 сообщений в день).
Бэкап - копия всех настроек бота (можно выбирать отборочно, что сохранить) (при бэкапе данных в нового бота слетают условия).
Администраторы - там можно добавить аккаунты по Gmail, который также смогут редактировать бота в зависимости от выбранных им прав.
Передать бота - в точности также по Gmail можно полностью отдать бота другому пользователю.
Правее блоков есть номер бота, должность аккаунта, тариф и информация, через сколько дней он закончится.
Блок платформы:
Платформы - социальные сети и мессенджеры, где будет работать бот
Можно подключить новую платформу, при нажатии на эту кнопку открывается рамка с надпись "Подключение новой платформы", там же можно выбрать платформу (Vk, Telegram), при выборе ВКонтакте можно выбрать группу и сайт сам подключит бота (если аккаунт привязан к VK), если Telegram, будет необходимо создать API в BotFather.
И так подключаем платформу.
Следующий блок - настройки:
В нем появляются еще 6 новых блоков:
Стандартный ответ, приветственное сообщение, события, время работы бота, настройки ветвления, прочие настройки.
Стандартный ответ - это Выполняется, если ответ пользователю не будет найден в сценарии.
В приветственном сообщении - это сообщение, которое бот присылает пользователю первым делом, перед тем как начать с ним оперировать. В приветственном, и в любом другом блоке с сообщениями можно вставить различные действия, помимо сообщений, об этом попозже.
В событиях:
Вход в сообщество и прочие обновления статуса
Для сообщества ВКонтакте
Выход из сообщества
Для сообщества ВКонтакте
Голос в публичном опросе сообщества
Для сообщества ВКонтакте
Репост записи со стены сообщества
Для сообщества ВКонтакте
Событие из VK Mini Apps
Для сообщества ВКонтакте
Платеж от пользователя
Для обработки платежей через VK Pay или наш агрегатор.
В каждом из блоков также можно совершать какие-либо действия в ответ на совершенное пользователем событие.
Остальные блоки не так сильно важны, поэтому сразу перейдем к следующему блоку - сценарий
Сценарий:
На странице мы видим надпись "Команды" слева сверху, справа сверху "Добавить команду", ниже условие и ответ (в краткой форме, для подробности нужно нажать на кнопку карандашика (редактировать), чтобы провести операцию с сценарием). Также справа от карандашика есть значок скопировать и удалить команду.
Нажимаем на карандашик (редактировать):
На странице появляется следующее:
Две кнопки:
Слева сверху "Вернуться к списку", под ней кнопка "Сохранить", ниже от них надпись "добавить действия" ниже Сообщения, далее идут блоки, которые можно добавить в команду:
1. Сообщение (типичное сообщение)
2. Голосовое сообщение (не думаю что это нужно, ибо необходим покупной API)
3. Карусель из карточек (Карусель VK, удобная вещь, для меню магазинов и тд, содержит в себе фото, название и кнопку действия)
4. Уведомление (Либо на Gmail, либо id VK, например @123456 (обязательно цифрами))
5. Получить данные (Следующим сообщением бот ждет от пользователя сообщение и записывает его в переменную, которая заранее названа в блоке получения данные, то есть например пользователь отправляет сообщение - бот получает данные, записывает ее в переменную, например {tell}, иерархия создания команды с получением данных: Сообщение "Напиши, сколько денег ты хочешь" - получить данные (справа записываем название переменной, в которую будет сохранен ответ пользователя) справа {tell}, пользователь пишет - миллион рублей - бот записал в переменную {tell} "миллион рублей")
6. Обновить данные (безумно важный блок, который обновляет данные переменных, можно выбрать кому обновлять данные: текущего пользователя или другого пользователя (по VK ID, цифрами без @), с этим блоком очень часто необходимо работать.)
7. Рассылки (можно подписать пользователя на рассылку или наоборот)
8. Таймер (устанавливает промежуток времени посреди блоков, например сообщение - таймер (выбираем например 60 и ставим "секунды" вместо "минуты" или "Часы") - сообщение (бот отправит третье действие через 60 секунд, все, что стоит после таймера со связанными условиями, если таковые есть, то будет отправляться через определенный промежуток времени)
9. Команда (переход на другую команду прямиком из одной команды в другую, то есть можно вызвать в одном сценарии переход на другой)
10. Пользователь (заблокировать бота пользователю или выбрать позицию в ветвлении)
11. Запрос к API (не нужно, индивидуально)
Важный аспект, под действием "Сообщение" есть кнопка "Клавиатура", там можно настроить клавиатуру для легкости интерфейса.
Можно выбрать один из двух ползунков (inline-клавиатура, скрыть клавиатуру после использования), inline - кнопки в сообщении, в чате, если не выбрать этот ползунок, клавиатура будет снизу, в ВК она будет отображаться как отдельный блок с клавиатурой, в которой можно выбрать действие, inline прикрепляется к сообщению.
Ниже "Добавить кнопку":
Можно выбрать название кнопки, какой-нибудь цвет, тип кнопки "Текстовая кнопка", "Кнопка с ссылкой", "Запрос местаположения", "Оплата VK pay", "Запуск VK Apps", самые частые кнопки это текстовые и кнопки с ссылкой.
В кнопке можно выбрать команду(сценарий из блока сценариев), которая выполняется по её нажатию.
Ниже можно сохранить данные кнопки или её удалить.
Ещё один важный блок, который есть под каждым действием "Настройки", в которых есть:
Две кнопки "Добавить условие" (И), "Добавить блок условий" (ИЛИ).
При добавлении появляется тип, который необходимо выбрать: "Пол", "Возраст", "город", "Страна", "ПЕРЕМЕННАЯ", "Текущая дата", "Текущее время", "Подписка на рассылку", "Кол-во присланных сообщений", "VK: подписка на сообщество", "VK: Отметка нравится", "VK: комментарий в обсуждении".
В пол можно выбрать:
Мужской, женский, не известен (это условие, то есть например, если выбрать пол мужской, то блок к которому добавлено это условие будет выполняться только в случае, если у пользователя указан пол как мужской во ВКонтакте), пример:
Сообщение
Настройки
Условие
Пол - мужской
В возрасте можно выбрать знаки: "=" "неравно" "Меньше" "больше" "Меньше или равно" "Больше или равно", а далее вписать возраст.
В "Город" можно выбрать список городов через запятую
В Страна список стран через запятую
В переменной нужно разобраться подробнее.
И так при выборе данного типа условия нужно вписать в левую колонку переменную и выбрать знак (как в возрасте), после знака идет поле куда нужно вписать значение этой переменной.
Пример:
Сообщение
Настройки
Условие
Переменная
{tell} = Привет
Бот отправит сообщение (блок), если переменная {tell} у пользователя равна "Привет".
В значение можно вписать многое, даже другую переменную и тд.
Текущая дата и тд разберешься сам.

Давай разберем пример с рулеткой (рандом):
Создаем новый сценарий
Добавляем блоки:
Сообщение:
Введи ставку
Получить данные:
тип - текст
записать в переменную {stavkatry}
Сообщение "На вашем балансе меньше средств, чем ваша ставка"
Условие, переменная: {stavkatry} < {balance} (переменные, которые необходимы пользователю для работы с ботом выдаются обновлением данных в приветственном сообщении, поэтому всегда напоминай, если добавляешь важную переменную для непосредственной работы сценария, то нужно объявить ее в обновлении данных приветственного сообщения, в нашем случае: {balance} = 0 объявляется в приветственном сообщении в обновлении данных)
Обновить данные:
Текущий пользователь
{balance} = {balance} - {stavkatry}
{casino_try} = {rand:1:20} ({rand:1:20} переменная в конструкторе которая отвечает за случайное число, еще можно делать рандом строки, в данном случае 1-20 диапазон)
{casino_exit} = 1 (делаем эту переменную, чтобы не возникало проблем с последующими сообщениями, так как если будет все также писать {balance} >= {stavkatry}, то они не будут работать, так как переменная {balance} была обновлена в этом обновлении данных, а именно мы отняли от нее сумму ставки, которую написал пользователь).
Условие
Переменная {balance} >= {stavkatry}
Обновление данных:
{stavka_win} = {stavkatry} * 3 (делаем отдельную переменную выигрыша, который будет, так как умножать все в одном обновлении будет плохо, часто баги или вообще не работает, нужно делать такие действия, раздреляя переменные, то есть написать {balance} = {balance} + {stavkatry} * 3 будет неверно и с багом, избегай таких ситуаций)
{balance} = {balance} + {stavka_win} (добавляем к балансу значение {stavka_win} которая расчитана выше, необходимо соблюдат иерархию, все, что выше - главнее и выполняется первее)
{casino_exit} = 2 (чтобы не писать лишний раз по много условий, делаем предыдущее {casino_exit} на 2, чтобы при работе со следующими блоками просто вписывать его в условие, заместо множества условий, так как в обновлении данных уже есть условия, которые необходимы для последующих сообщений, просто обновляем эту переменную, так как оно совершается только при выполнении всех нужных условий)
Условие
Переменная {casino_exit} = 1 (Проверяем, прошел ли пользователь проверку с балансом после введения ставки)
Переменная {casino_try} >= 1 
Переменная {casino_try} <= 15 
Сообщение "Вы выиграли {stavka_win}р! Баланс: {balance}р"
Условие:
{casino_exit} = 2
Обновление данных
{casino_exit} = 3
Условие:
{casino_exit} = 1
Переменная {casino_try} >= 16
Сообщение "Вы проиграли! Баланс: {balance}р"
Условие
Переменная {casino_exit} = 3
Обновление данных
{casino_exit} = 0
Условие
переменная {casino_exit} неравно 0 (для завершения, чтобы не происходило ничего лишнего).
Мы разобрали очень простой, но надежный и нужный пример (обучайся по нему, для дальнейших команд повышенной сложности и тд).
Немного информации из FAQ:
Переменные и конструкции
−
Внутри текстовых ответов и в большинстве полей на сайте вы можете использовать переменные, которые при отправке сообщения будут заменяться на нужные значения.

Информация о пользователе
{user:id} - Идентификатор
{user:first_name} - Имя
{user:last_name} - Фамилия
{user:city} - Город
{user:country} - Страна
{user:messages_count} - Количество отправленных сообщений
Информация о диалоге
{peer:id} - Идентификатор
{peer:link} - Ссылка на диалог с пользователем
Информация о платформе
{platform:id} - Идентификатор подключенного сообщества/сервиса
Прочие переменные
{date}, {time} - Текущие дата, время
{date:day} - Порядковый номер дня недели
{time:unix} - Время в формате unixtime
{date:calc:+5} - Дата, увеличенная на 5 дней
{time:calc:-2} - Время, уменьшенное на 2 часа
Информация о сообщении пользователя
{message} - Исходный текст сообщения
{args:1} или {arguments:1} - Первый параметр присланной команды, разделенной по пробелам
{args_join:2} или {arguments_join:2} - Все параметры присланной команды, разделенной по пробелам, кроме первых двух
Прочие переменные и конструкции
−
Помимо стандартных переменных на сайте доступны конструкции для получения и преобразования прочих данных.

Конструкции для работы с платежами
{payments:qiwi_link:100}, {payments:qiwi_short_link:100} - Создание платежной ссылки через Qiwi, подробнее в разделе "Прием оплаты"
{payments:ym_link:100}, {payments:ym_short_link:100} - Создание платежной ссылки через Яндекс.Деньги
Прочие конструкции
{rand:1:100} - Случайное число из указанного диапазона
{rand_str:1|3|5|7} - Случайная строка из списка, разделенного вертикальной чертой
{filter:{variable}>100:Верно:Не верно} - Фильтр для проверки выражения и вывода одного из результатов
Конструкции для получения информации других профилей
{profile:{args:1}:first_name} - Имя пользователя по идентификатору из команды
{profile:{args:1}:last_name} - Фамилия пользователя по идентификатору из команды
{profile:{args:1}:balance} - Значение персональной переменной "balance" пользователя
Поддерживаются поля со стандартной информацией о пользователе и персональные переменные. Если профиль ещё не сохранен в списке пользователей бота, то конструкцией будет возвращаться результат "Профиль не найден" — используйте это в фильтрах.
Помимо стандартных переменных Вы можете создавать собственные переменные для хранения персональных данных отдельно для каждого пользователя.

Эти переменные можно использовать внутри текстовых ответов бота, уведомлениях и других местах, указывая их название в фигурных скобках, например: {balance}

Мы рекомендуем использовать только латинские буквы и стиль "snake_case" в названиях переменных.

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



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

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

Конструкции для преобразования значения
{variable:length} - Количество символов в переменной
{variable:to_lower} - Значение переменной в нижнем регистре
{variable:to_upper} - Значение переменной в верхнем регистре
{variable:url_encode} - Закодировать значение для использования в URL
{variable:number_format} - Форматирование числового значения с разделением групп разрядов и отделением долей
{variable:crop:2:5} - Обрезка значения переменной от 2 до 5 символа
{variable:round:2} - Округление значения переменной до 2 символов после запятой
Конструкции для вывода рейтинга по переменной
{rating:balance:1} - Значение переменной "balance" первого пользователя в рейтинге
{rating:balance:1:id} - Идентификатор первого пользователя в рейтинге
{rating:balance:1:name} - Имя первого пользователя в рейтинге
{rating:balance:1:full_name} - Полное имя первого пользователя в рейтинге
{rating:balance:1:mention} - Упоминание первого пользователя в рейтинге
Параметры конструкции {rating}: название персональной переменной, номер места в рейтинге (до 20 места) и выводимое значение.
Глобальные переменные используются также, как и персональные переменные.

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

Все названия глобальных переменных должны начинаться с "global", например: {global_count}
В зависимости от события, на которое бот отправляет ответ, также доступны разные переменные.

Новое сообщение
{env:geo} - Данные о локации из вложений
{env:ref} - Произвольный параметр для работы с источниками переходов
{env:ref_source} - Произвольный параметр для работы с источниками переходов
{env:attachments} - Информация о вложениях к сообщению
Вход в сообщество ВКонтакте
{env:join_type} - Указывает, как именно был добавлен участник
Выход из сообщества ВКонтакте
{env:self} - Указывает, был пользователь удален или вышел самостоятельно
Голос в опросе сообщества ВКонтакте
{env:owner_id} - Идентификатор владельца опроса
{env:poll_id} - Идентификатор опроса
{env:option_id} - Идентификатор варианта ответа
Репост записи со стены сообщества
{env:wall_id} - Идентификатор исходной записи
{env:new_wall_id} - Идентифкатор новой записи на стене пользователя
Событие из VK Mini Apps
{env:app_id} - Идентификатор приложения
{env:payload} - Данные, переданные приложением
Платеж от пользователя через VK Pay или наш агрегатор
{env:amount} - Сумма платежа
{env:description} - Комментарий
Действия:
Бот может выполнять действия нескольких типов: отправка сообщения, получение данных, создание таймера и другие. Подробнее о каждом из них рассказано в разделе "Работа с ботом".

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



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

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

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

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

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

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

Также в сценарии вы можете настроить собственные команды, которые будут отвечать за подписку и отписку от рассылки. Для изменения статуса пользователя нужно воспользоваться действием "Рассылки" при настройке команды.
Общие лимиты:
В нашем сервисе имеются общие лимиты, относящиеся ко всем ботам. Их можно бесплатно снять, если вы реализуете большой проект. Для этого напишите нам на support@bots-kit.com и расскажите немного о боте, которого вы делаете, а также о конкретных случаях необходимого превышения ограничений.

Сценарий
В сценарии можно создать не более 5000 команд
Внутри каждой команды можно создать не более 75 действий
В каждом текстовом ответе бота доступно не более 250 переменных
Каждое выполнение отложенного действия бота тарифицируется как отдельное событие
Настройки действия
Для каждого сообщения доступно не более 10 вложений
Для каждого действия можно создать не более 25 блоков фильтров, а в каждом блоке может быть не более 25 условий
Пользовательские данные
Длина названия переменной не может превышать 50 символов
Длина содержимого переменной не может превышать 2000 символов
Платформы
Для каждого бота доступна обработка не более 5 млн ответов в день

Действия (блоки в сценарии):
Сообщение:
С помощью этого действия можно отправить пользователю ответ от имени бота.

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

Вложения
Пополнить библиотеку вложений в боте можно, отправив своему боту команду /загрузка.
После добавления вложений отправьте ему команду /завершить.
Вложения могут быть нескольких типов: фото, видео, аудио, документ и запись со стены.
Клавиатура
Размер обычной клавиатуры не может превышать 5x10 кнопок, а inline-клавиатуры 5x6 кнопок.
Каждая кнопка в клавиатуре может быть одного из 5 типов: Текстовая кнопка, Кнопка со ссылкой, Запрос местоположения, Оплата через VK Pay либо Запуск VK Apps.
В названиях кнопки и параметрах можно использовать обычные и персональные переменные.
Карусель из карточек:
С помощью этого действия можно отправить пользователю сообщение, содержащие карусель из нескольких элементов.

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



Прикрепляемое изображение должно иметь пропорции 13/8 и минимальный размер 221px на 136px.

Клавиатура может содержать до 3 кнопок по вертикали.

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

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

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

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

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

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

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

Например, чтобы увеличить значение переменной на единицу, нужно указать в значении {variable}+1



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

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





Подробнее о функционале конструкции {profile} читайте в разделе "Первые шаги".

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

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

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

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

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

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

Поддерживаются два формата отправки данных: "application/json" и "application/x-www-form-urlencoded".

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

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

ВАЖНО:
Обновлять данные вот так: {balance} = {balance} - {business_level} * 2000 НЕЛЬЗЯ!
КАК Я И ПРОСИЛ ВЫШЕ, НУЖНО БРАТЬ ОТДЕЛЬНО:
{buisness_leveltry} = {business_level} * 2000
{business_level} = {buisness_leveltry}
{balance} = {balance} - {business_level}

Просьба посмотреть в интернете подробности этого сайта (botskit) и изучить еще много всего о платформе, как следует обучиться, проверить, разобраться в интерфейсе и в целом идеально изучить всю платформу от и до. Я постарался разобрать все просто, однако ты можешь научиться намного больше. Учитывай, чтобы бывают разные ошибки и баги, их тоже изучи, обучись как следует, чтобы сразу избегать и выдавать самые идеальные, четкие, простые и структурированные варианты.
Ты должен писать команды по примеру (при помощи с командами), то есть с четкой иерархией без воды, чисто и понятно (объяснять каждую новую переменную, напоминать о важных, которые сразу нужно добавить в приветствие), не забывай, что можно разрабатывать сценарии и делать связи между ними (НО ЕСЛИ ЭТО НЕОБХОДИМО).

Пример структуры ответа:
1. Переменные для преветственного сообщения
2. Сам сценарий: четкая иерархия: действие - кнопка(ЕСЛИ НУЖНА) - условие (ЕСЛИ НУЖНО) 
И так, зная и соблюдая всю инфомацию выше, напиши, как сделать команду (Сценарий):