Завдання
Завдання запускається за розкладом. Є два види:
-
Зі спільними даними. Скрипт працює без відвідувача: бот виконує його сам, навіть коли ніхто не пише. Наприклад, щоночі завантажити список лікарів з іншого сервісу в
app.*, а вдень показувати його одразу. - З кожним відвідувачем. Для кожної людини з вибраних аудиторій бот виконує скрипт з її змінними, а потім, якщо задано ланку, запускає їй цю ланку. Наприклад, щоранку нагадати про візит тим, у кого він сьогодні.
Як додати
- Відкрийте «Завдання» в меню зліва.
- Натисніть «Нове завдання».
- Задайте назву.
- У полі «Коли запускати» виберіть, як часто: кожні кілька хвилин чи годин, щодня, у вибрані дні тижня або щомісяця, і час. Під полем видно, як це читається: «По пн, ср, пт о 09:00».
- У полі «Скрипт працює з» виберіть «Спільними даними» або «Кожним відвідувачем».
- Для відвідувачів виберіть аудиторії.
- Напишіть скрипт.
- Для відвідувачів, за бажанням, виберіть ланку або створіть разову ланку тут же. Її редактор відкривається під полем.
- Натисніть «Зберегти». Завданню для відвідувачів досить і самої ланки.
Час рахується за часовим поясом бота. Пояс змінюють у «Налаштування бота».
Що бачить скрипт
Скрипт пишуть так само, як у кроці «Скрипт». Правила мови описані на сторінці «Скрипти».
-
app.*— справжні дані бота. Зміни вapp.*зберігаються. -
fetch,page_metaіsave_imageпрацюють з тими самими обмеженнями, що й у розмові. -
platform.now— момент запуску.
У завданні зі спільними даними user.* і session.* порожні: відвідувача немає. Записане туди зникає після запуску.
У завданні для відвідувачів скрипт працює окремо для кожної людини: user.* — її змінні, і зміни в них зберігаються. Те, що скрипт запише в session.*, побачить ланка, яку людина отримає після нього.
Цей скрипт оновлює список лікарів. Якщо сервіс не відповів, лишається старий список:
temp.resp = fetch("https://clinic.example.com/api/doctors", {timeout: 20})
app.doctors = temp.resp.error ? app.doctors : temp.resp.body
Цей скрипт прибирає замовлення, старші за 30 днів:
app.orders = filter(app.orders, item.date >= add_days(platform.now, -30))
Запуск і помилки
- Перемикач біля завдання вмикає і вимикає запуск за розкладом.
- «Запустити зараз» виконує завдання одразу, навіть коли воно вимкнене.
- Під назвою видно час останнього запуску. Для спільних даних — ключі
app.*, які він змінив. Для відвідувачів — скільком людям завдання виконалось і скільком з помилкою. - Якщо завдання зупинилося з помилкою, її текст видно на картці. Наступний запуск відбудеться за розкладом.
- На сторінці завдання є «Історія запусків»: останні 50 запусків з тим, що вони змінили, і з помилками. Для відвідувачів там видно, у кого саме сталася помилка.
- Коли завдання за розкладом перестає виконуватися, бот надсилає вам повідомлення в Telegram. Поки воно падає далі, повторних повідомлень немає.
Бот може мати до 10 завдань. Завдання для відвідувачів за один запуск охоплює до 1000 людей і надсилає повідомлення в темпі, який дозволяє Telegram.