Змінні
Змінні контакту зберігають дані однієї людини: місто, вибраний букет, суму замовлення. Глобальні змінні спільні для всього бота: адреса магазину, курс валюти, лічильник замовлень. Докладніше про те, де їх видно і як підставити в повідомлення, — у розділі «Дані для підстановки».
Те, що записали функції, зберігається після того, як код завершився без помилки. Усередині коду читання вже бачить записане.
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('акція_дня');