Запись общей переменной

Примеры использования:

Функции и ограничения

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

Типы данных и Управление списками в Записи общей переменной и в обычной Записи переменной работают одинаково.

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

Создание общей переменной

1. Добавьте компонент Запись общей переменной на экран.

2. Придумайте Имя и Значение для переменной, выберите подходящий тип или оставьте Строку, если собираетесь записать текст.

Использование общей переменной

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

2. Поменяйте или оставьте без изменений Имя переменной, куда записать результат.

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

Готово. Записанная общая переменная будет доступна для всех пользователей бота.

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

Переменная выводится в текст с помощью хелпера stringify:

{{stringify shared.door}}

Несколько переменных будут выводиться так: {{shared.имя_переменной_1}} и {{shared.имя_переменной_2}}

Если результат записался в переменную shared, как в нашем примере, то вывод JSON с переменной выглядит таким образом: {{stringify shared}}

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

Независимо от того, где выводится или меняется переменная — рядом с изначальной записью или где-то отдельно в боте — перед сообщением с выводом всегда нужно добавлять компонент Прочитать общие переменные. Без этого переменная не будет выводиться.

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

Общие переменные отображаются по отдельности для каждой платформы.

Кнопка Заново загрузить общие переменные обновляет список общих переменных.

Кнопка Закрыть общие переменные закрывает таблицу общих переменных.

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

Очистка общих переменных

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

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

Примеры использования

Как сделать счетчик с прибавлением и вычитанием

Начало отсчета — 0. Каждый пользователь сможет прибавить или отнять единицу от точки отсчёта, то есть от нуля. Числа после каждого прибавления или вычитания будут записываться в общую переменную. Если выводить эту переменную в боте, то у каждого пользователя бота будет доступ к общим результатам в любой момент голосования.

Запись общих переменных

1. Добавьте на экран компонент Запись общей переменной.

2. Придумайте любое имя переменной.

3. Выберите Тип Число.

4. Запишите число от которого будет производиться отсчет в общую переменную, в нашем случае это 0.

Этот экран может никуда не вести. Его нужно запустить один раз для того, чтобы переменная, где будет вестись счет, записалась в боте. Воспроизвести экран отдельно от основного сценария можно с помощью События Шаблон или по ссылке из настроек экрана на правой панели редактора ботов.

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

5. Добавьте Кнопки с вариантами «‎плюс»‎ и «минус».

6. Добавьте два новых экрана для плюса и для минуса и сделайте переход с кнопок на эти экраны.

7. На экран для плюса добавьте Запись общей переменной.

8. Имя переменной скопируйте с первого экрана, в нашем случае это var1.

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

10. Скопируйте Запись общей переменной на экран для минуса.

11. На экране для минуса поменяйте Тип на Уменьшить число на.

Чтение общих переменных

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

1. Добавьте на те же экраны для плюса и минуса компонент Прочитать общие переменные сразу после Записи общей переменной.

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

3. Запишите в поле Имена общих переменных, которые нужно прочитать имя переменной с первого экрана. В нашем случае это var1.

4. И добавьте сообщение с итогами:

Спасибо за голос. Сейчас рейтинг поста {{stringify nums.var1}}

Готово.

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

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

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

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

Как провести голосование из двух вариантов в боте

Пользователи общим голосованием должны выбрать аватарку канала. Победит тот вариант, за который будет больше голосов.

Запись общих переменных

1. Добавьте новый экран. На этот экран добавьте два подряд компонента Запись общей переменной.

2. В первом компоненте Имя переменной будет blue, во втором — white.

3. Тип у обеих переменных поменяйте на Число.

4. В поле Значение впишите 0 в обоих компонентах.

Этот экран может никуда не вести. Его нужно запустить один раз для того чтобы переменная где будет вестись счет, записалась в боте. Воспроизвести экран отдельно от основного сценария можно с помощью События Шаблон или по ссылке из настроек экрана на правой панели редактора ботов.

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

Чтение общих переменных

1. Создайте новый экран, добавьте на него компонент Прочитать общие переменные.

2. Оставьте без изменений или поменяйте Имя переменной куда записать результат. В примере мы поменяли имя переменной на colors.

3. Нажмите кнопку Добавить и добавьте Имена общих переменных которые нужно прочесть. В нашем случае это blue и white.

4. На тот же самый экран добавьте компонент Кнопки с двумя кнопками.

5. Так как мы уже добавили компонент Прочитать общие переменные, то в тексте перед кнопками можно вывести результаты до того, как пользователь проголосует:

Проголосовавших за синий фон: {{stringify colors.blue}}
Проголосовавших за белый фон: {{stringify colors.white}}

6. Добавьте экраны для переходов по кнопкам, с кнопок установите эти переходы.

7. На экран куда ведет кнопка выбора синего цвета добавьте компонент Запись общей переменной.

8. В поле Имя добавьте blue.

9. Поменяйте Тип на Увеличить число на, в значении добавьте 1.

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

11. В поле Имя добавьте имя второй записанной переменной. В нашем случае это white.

12. Поменяйте Тип на Увеличить число на, в значении добавьте 1.

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

14. И добавьте сообщение с результатами:

Спасибо за голос!
Сейчас результаты такие:
За синий фон: {{stringify colors.blue}}
За белый фон: {{stringify colors.white}}

Готово.

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

В начало ↑