Батя романтик
Сегодня научим бота говорить комплименты. Например, вы можете создать сообщество-персонаж, наделить его неповторимым характером и развлекать игроков в беседах.
Как сделать бот-сообщество-персонаж, было рассказано в материалах марафона «Автопилот 2077». Поэтому договоримся, что бот у вас есть. А если нет, смотрите Материалы для изучения.
Материалы для изучения
- Создание и БАЗОВАЯ НАСТРОЙКА БЕСЕДЫ сообщества
- Еще одна версия инструкции про подключение бота к беседе ВК (от Никиты)
- Различия между обычной беседой и беседой сообщества
- Список всех строковых функций Автопилота
- Работа с JSON объектами (ассоциативными массивами)
Важная информация:
Если Вы сделали бота и разрешили его добавлять в беседу всем пользователям, то оплачивать мили придется вам. Если Вы не хотите, чтобы ботом пользовались, просто выключаете возможность добавления в беседу.
Например: если Вы добавите нашего бота к себе, тогда на его использование тратятся мили у нас (вы не платите), а если сделан Кощей в аккаунте Андрея и включено: «добавление в беседу» для всех, то придется платить владельцу аккаунта — Андрею.
Для выключения возможности добавления сообщества в беседу:
- переходим в Управление — Сообщения — Настройки для ботов и снимаем галочку: «Разрешать добавлять сообщество в беседы»

Вариант 2 (менее радикальный):
Для того, чтобы разрешить добавлять бота-сообщество в беседу только администраторам нужно сделать следующее:
- переходим в Управление — Меню находим пункт «Добавить в беседу» и в настройках видимости ставим галочку: «Только администаторы», т.е. кнопку для добавления в беседу видят только администраторы сообщества.

Батя у нас немного фотограф, так что он еще будет дарить открытки прекрасным дамам. Поэтому вы должны помочь ему подготовить нужные изображения.
Важно! Я буду загружать изображения в открытый альбом, даже если пользователи увидят ваши изображения ничего страшного не произойдет (ну или можно всегда выключить раздел с Фотографиями)
Загрузка фотографий
Для загрузки фотографий нужно перейти в Управление → Разделы → Фотоальбомы, ставим галочку и нажимаем сохранить

После этого у вас в сообществе появится раздел для добавления фотографий. Добавлять фотографии очень просто, я уверен, вы справитесь.
Создание ресурса
Для того чтобы комплименты выглядели красивее, мы в ресурсы добавим картинки. Переходим в базу данных вашего сообщества — раздел Ресурсы и создаем там новый ресурс с названием: Комплименты
(важно использовать именно такое название для удобства дальнейшей настройки).
Чтобы при запуске команды достать поле «содержимое» этого ресурса, есть два способа (рекомендую первый):
- Точно скопировать название ресурса (
Комплименты
).
В команде написать:{get}Комплименты|name|body{/get}
- Точно скопировать номер ресурса (
XXXXX
).
В команде написать:{get}XXXXX{/get}
Пример итогового результата комплиментов с картинками:

Команда: «Комплимент»
Важно! В примере данной команды подразумевается, что персонаж у вас настроен для работы в беседе. Если нет, то пожалуйста пересмотрите материалы для изучения
Событие:
1) Событие: «Написал сообщение» с текстом равным комплимент
с переключателями: без влож
, любым вложением
, в беседе

Условия:
1) Добавляем условие: числовая переменная %sex%
равна 1
, дабы в праздник поздравлять только девушек, а зашедших парней ругать. Для этого, например, в реакции на невыполнение можно написать такой текст: ↓
@id%vk_id%(%first_name%), cынок, {rand}каких комплиментов тебе подавать, а?|В этот день я признаюсь в любви только девушкам|признания только для милых дам.|ты случаем не ошибся? Сегодня женский праздник.|не до тебя сейчас. Ты сам маму уже поздравил?|не хочу я тебя поздравлять, ты не дама{/rand}

1) ОПЦИОНАЛЬНО. Добавляем условие: «Дата выполнения события» и в полях ставим дату с: 08.03.2021
по 08.03.2021
. Если Вы хотите поздравлять только один день. В реакции на невыполнение можно написать текст:
@id%vk_id%(%first_name%), {rand}устал я от комплиментов уже не 8 марта? Пойду посплю.|нет настроения тебе в любви признаваться. Праздник кончился{/rand}

2) ОПЦИОНАЛЬНО. Добавляем условие: «После выполнения прошло» ставим переключатель команды
вставляем номер команды больше или равно 1
дней назад (временной отрезок выберите сами). Это сделано для того, чтобы не захламлять ваши беседы и не ловить негатив (мало ли кому — то комплименты не понравятся). В реакции на невыполнение можно написать текст:
@id%vk_id%(%first_name%), {rand}устал я от комплиментов?Пойду посплю.|Нет настроения тебе в любви признаваться {/rand}

3) Добавляем условие: переменная %peer_id%
равна нужному ID беседы. Это сделано для того, чтобы можно было выбирать, где должен отвечать наш бот.

Действия:
Важно! Это готовый сайт — генератор комплиментов. За качество комплиментов создатели статьи ответственности не несут.
1) Теперь будем получать случайный комплимент от стороннего сайта. В этом нам поможет действие: «Отправить GET-POST запрос» и отправка
GET — запроса на сайт http://free-generator.ru/generator.php
с параметрами:
type
=1
pol
=0
action
=compliment
Важно! Дело в том, что сайт может дарить комплименты «длинные» — целые фразы (type
=2
), а может короткие (type
=1
).
Аналогично, можно дарить комплименты девушкам (pol
=1
), а можно и мужчинам (pol
=2
)

2) Временная переменная %compliment%
=@id%vk_id%(%first_name%), {json}%response%|compliment.compliment{/json}
Сайт возвращает данные в json — формате и чтобы его преобразовать воспользуемся функцией {json}

3) Временная условная переменная %compliment%
. Принимает значения:
- если переменная
%compliment%
содержитnot found
→ текст:
@id%vk_id%(%first_name%), {rand}устал я от комплиментов? Пойду посплю.|Нет настроения тебе в любви признаваться {/rand}
- если не подошло ни одно из условий выше → текст:
%compliment%
Данное условие проверяет какие данные вернул сайт. Если сайт недоступен, то он вернет not found
Если такое произошло, просто бот скажет, что ему не до признаний. Такое бывает, если сторонний сайт недоступен, либо вы можете организовать выдачу комплиментов из ресурса и выдавать их при недоступности сайта. Как это сделать читайте ниже:
Автопилот не несет ответственность за работоспособность сайтов для запроса.

Важно! Вы можете завести отдельный ресурс с пожеланиями (по аналогу ресурса с картинками), получать случайную строку, если сайт не доступен и выдавать пользователю. В примере была показана только обработка ответа от сайта, когда он недоступен. Действие ниже (4) опционально.
4) Временная переменная %local_compliment%
= @id%vk_id%(%first_name%), {array}{get}82403{/get}|1|rand|col{/array}
. Мы достаем одну строку из массива приятных слов. В примере ниже вариант получения по номеру ресурса: 82403
(используйте тот вариант, к которому больше привыкли).

5) Временная переменная %array%
= {get}Комплименты|name{/get}
. Мы достаем весь массив картинок из созданного ранее ресурса. В примере ниже вариант получения по номеру ресурса: 79053
(используйте тот вариант, к которому больше привыкли).

6) Временная переменная %picture%
= {array}%array%|1|rand|col{/array}
. Мы достаем одну случайную картинку из созданного ранее ресурса. Если надо больше, то не вопрос: создаете несколько аналогичных переменных.

Мудрость от Автопилота. Если в ресурсе вложения записать не по одному на строку а через запятую, то делать отправку 2-х или более картинок можно будет значительно легче — просто сменив число внутри фукнции:{array}%array%|2|rand{/array}
7) «Отправить сообщение» в беседу %peer_id%
с текстом: %compliment%
и вложением: %picture%

Тестируем.


Все работает. С праздником. А как же комплименты в комментарии? Аналогично, только используется событие: «Написал комментарий» и действие: «Написан комментарий».
Статью подготовил Андрей Горячих
Если у вас остались какие-то вопросы, или есть пожелания, или просто хотите сказать 💙 «спасибо» — сделать это можно в этом посте на стене группы. Творческих взлетов и успешного внедрения!
Вернуться на главную страницу инструкций