Запитати ШІ
Українська UK
Перейти до Watbot

Змінні

Змінні контакту зберігають дані однієї людини: місто, вибраний букет, суму замовлення. Глобальні змінні спільні для всього бота: адреса магазину, курс валюти, лічильник замовлень. Докладніше про те, де їх видно і як підставити в повідомлення, — у розділі «Дані для підстановки».

Те, що записали функції, зберігається після того, як код завершився без помилки. Усередині коду читання вже бачить записане.

getContactVariable

getContactVariable(name)

Повертає значення змінної контакту.

Параметр Тип Що передати
name Рядок Ім'я змінної, як у картці контакту. Пробіли й кириличні літери допустимі

Повертає значення рядком або undefined, якщо в контакту немає такої змінної. Для розрахунків обгорніть значення в Number().

var count = Number(getContactVariable('кількість_троянд') || 0);

if (count >= 11) {
    setContactVariable('знижка', 10);
}

Якщо змінну записав цей самий код, функція поверне значення в тому вигляді, у якому його записали: число лишиться числом.

setContactVariable

setContactVariable(name, value)

Записує змінну контакту. Якщо змінної немає, вона з'явиться.

Параметр Тип Що передати
name Рядок Ім'я змінної
value Рядок, число, true або false Значення

Нічого не повертає.

Об'єкт, масив, null і undefined не зберігаються як є — змінна отримає порожнє значення. Щоб зберегти об'єкт або масив, перетворіть його на рядок, а під час читання розберіть назад:

setContactVariable('кошик', JSON.stringify(['Троянди', 'Тюльпани']));

var cart = JSON.parse(getContactVariable('кошик') || '[]');

Логічні значення краще зберігати рядками, наприклад 'так' і 'ні': true і false під час наступного читання в іншому блоці надійдуть рядками '1' і ''.

deleteContactVariable

deleteContactVariable(name)

Видаляє змінну контакту.

Параметр Тип Що передати
name Рядок Ім'я змінної

Нічого не повертає. Після видалення getContactVariable з цим ім'ям поверне undefined.

deleteContactVariable('промокод');

getGlobalVariable

getGlobalVariable(name)

Повертає значення глобальної змінної бота.

Параметр Тип Що передати
name Рядок Ім'я глобальної змінної

Повертає значення рядком або undefined, якщо такої змінної немає.

var freeDelivery = Number(getGlobalVariable('безкоштовна_доставка_від') || 0);
var sum = Number(getContactVariable('сума_замовлення') || 0);

if (sum >= freeDelivery) {
    sendMessage('Доставка для вас безкоштовна.');
}

setGlobalVariable

setGlobalVariable(name, value)

Записує глобальну змінну бота. Якщо змінної немає, вона з'явиться. Значення одразу видно всім контактам бота.

Параметр Тип Що передати
name Рядок Ім'я глобальної змінної
value Будь-який Значення. Зберігається рядком: число 5 стане '5', а об'єкт — '[object Object]', тому об'єкти перетворюйте на рядок через JSON.stringify

Нічого не повертає.

var orders = Number(getGlobalVariable('замовлень_сьогодні') || 0);
setGlobalVariable('замовлень_сьогодні', orders + 1);

Увага

Якщо код із таким записом виконується в кількох контактів одночасно, кожен прочитає те саме старе значення, і частина додавань загубиться. Для точного підрахунку такий лічильник не підходить.

deleteGlobalVariable

deleteGlobalVariable(name)

Видаляє глобальну змінну бота.

Параметр Тип Що передати
name Рядок Ім'я глобальної змінної

Нічого не повертає.

deleteGlobalVariable('акція_дня');