Универсальная команда с реакцией на репост один раз
Сегодня мы научимся делать механику, которая позволяет реагировать на репост только один раз.
Вы можете возразить: «Что там сложного? Событие «Сделан репост» и указать идентификатор поста»
Да, а если у вас 10, 15 постов. Конечно, можно скопировать команду, заменив идентификаторы постов, добавить условие «Выполнена команда» 0 ровно 0 раз, но это не наш метод.
Для начала в разделе «Списки игроков для VK» делаем список для начисления баллов. В примере список с типом рейтинг и номером: 1828647
Важно! Номер события у вас будет другой, также вы можете сделать список этим событием в выключенной команде.
Команда «Начисление баллов за репост поста»
Важно! Использование события «Сделал репост» для выдачи бонусов и прочих ситуаций, которые относятся к «желаемым для подписчика действиям бота» ЗАПРЕЩЕНО правилами ВКонтакте.
Не менее важно! Реакция на репост будет работать только если у подписчика открытый профиль! Для закрытых профилей репосты не учитываются! (так как нет доступа к стене).
В ВК есть 2 типа использования репостов:
1) для розыгрышей (можно)
2) для лидмагнитов, подписок и прочего (категорически запрещено!)
Т.е. еще раз внимательно посмотрим правила для ботов. Для розыгрышей репосты использовать можно, для лидмагнитов и прочего нельзя ни в коем случае, иначе рискуете получить бан и виноваты будете только ВЫ.
Событие:
1) Для реакции на репост поста используем событие «Сделан репост» с любым идентификатором для реакции на репост любого поста.
2) Для реакции только на те посты, на которые еще не было репоста, добавляем условие функция {json}{fields}%event_club_id%_resposts{/fields}|%post_id%{/json}содержит not found
т.е. в поле игрока %event_club_id%_resposts(название может быть любым удобным вам), нет свойства с идентификатором поста %post_id%
В примере универсальное поле игрока для каждого сообщества %event_club_id%_respostsэто сделано для того, чтобы механика могла работать в разных сообществах, ведь что ID поста могут совпадать, поэтому мы и дописываем идентификатор сообщества из переменной %event_club_id%
Важно! На этапе тестирования вы можете в реакции на невыполнение можно выводить текст (для этого пользователь должен разрешить диалог с вашим сообществом, согласно Азбуке рассылок ВК)
Действия:
1) Для того, чтобы записать в поле игрока идентификатор поста под которым поставлен лайк, добавляем действие «Изменить поле профиля игрока» с названием %event_club_id%_resposts.%post_id%и значением равным 1
2) Для начисления баллов добавим действие: «Добавлен в список» 1828647и уровень увеличен на 5т.е. за репост мы будем давать пять баллов.
3) Для сохранения количества баллов запишем их во временную переменную %ball%= {level}1828647{/level}
4) Опционально действием: «Отправить сообщение» отправляем данные игроку:
%first_name%, у вас %ball% {case} %ball%|балл|балла|баллов{/case}
Здесь в зависимости от переменной %ball% выводит игроку текст с количеством баллов Подробности про функцию {case} есть в документации.
Команда «На проверку поста»
В этой инструкции был показан пример проверки на нахождения поста по хештегу. Инструкция актуальная, но имейте в виду, что API VK не всегда отдает корректные данные, поэтому решите для себя, что вам лучше подарить Х баллов или ошибочно оштрафовать игрока. В данной инструкции мы не будем это рассматривать, если будет желание, можете настроить самостоятельно.
Тестируем.
Все отлично работает.
Творческих взлётов и успешного внедрения.
Вернуться к списку инструкций