Универсальная команда с реакцией на репост один раз

Демонстрация настройки

Сегодня мы научимся делать механику, которая позволяет реагировать на репост только один раз.
Вы можете возразить: «Что там сложного? Событие «Сделан репост» и указать идентификатор поста»

Пример события
Пример события

Да, а если у вас 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т.е. за репост мы будем давать пять баллов.

Увеличиваем количество баллов на 5
Увеличиваем количество баллов на 5

3) Для сохранения количества баллов запишем их во временную переменную %ball%= {level}1828647{/level}

Получаем количество баллов
Получаем количество баллов

4) Опционально действием: «Отправить сообщение» отправляем данные игроку:

%first_name%, у вас %ball% {case} %ball%|балл|балла|баллов{/case}
Пример действия
Пример действия

Здесь в зависимости от переменной %ball% выводит игроку текст с количеством баллов Подробности про функцию {case} есть в документации.

Команда «На проверку поста»

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

Тестируем.

Все работает. Подробности в видео выше.
Все работает. Подробности в видео выше.

Все отлично работает.

Творческих взлётов и успешного внедрения.

Вернуться к списку инструкций
321 views·9 shares