$pushgate.createEvent
Метод создает событие, которое наступит в заданное время.
Синтаксис
- ECMAScript 5
- ECMAScript 6
$pushgate.createEvent("2024-06-13T18:00:00");
В среде ECMAScript 6 метод является асинхронным:
await $pushgate.createEvent("2024-06-13T18:00:00");
Принимаемые аргументы
Метод $pushgate.createEvent
принимает 6 аргументов.
Аргумент | Описание | Тип | Обязательный | Значение по умолчанию |
---|---|---|---|---|
dateTime | Дата и время наступления события | Строка | Да | — |
event | Название события | Строка | Нет | timerEvent |
eventData | Данные, переданные вместе с событием | Объект | Нет | {} |
channelType | Тип канала | Строка | Нет | $request.channelType |
botId | Идентификатор бота | Строка | Нет | $request.botId |
chatId | Идентификатор пользователя | Строка | Нет | $request.channelUserId |
предупреждение
Обратите внимание на следующие особенности задания даты и времени события:
- Строка, переданная в аргументе
dateTime
, должна иметь форматyyyy-MM-ddTHH:mm:ss
. - Отправка, запланированная на прошедшее время, не вызовет ошибки, но будет выполнена немедленно.
подсказка
В поле
eventData
вы можете передать любые данные, которые потребуются при наступлении события. Данные будут доступны в обработчике события в поле $request.rawRequest.eventData
.Возвращаемое значение
Метод возвращает объект с одним полем id
— идентификатором созданного события.
к сведению
Идентификатор используется для отмены события при помощи метода $pushgate.cancelEvent
.
Учет часового пояса
Планирование событий из сценария происходит с учетом часового пояса, который был задан для клиента при помощи метода $reactions.setClientTimezone
.
предупреждение
Если часовой пояс для клиента не задан, по умолчанию используется часовой пояс, указанный в настройках проекта на вкладке Классификатор.
Пример
Рассмотрим пример создания будильника при помощи сообщений от бота.
- ECMAScript 5
- ECMAScript 6
state: SetAlarm
intent!: /Будильник/Поставить
a: На какое время?
state: Time
q: * @duckling.time *
script:
$temp.time = $parseTree["_duckling.time"];
$pushgate.createEvent($temp.time.value);
a: Будильник установлен на {{$temp.time.hour}}:{{$temp.time.minute}}.
state: Alarm
event!: timerEvent
a: Пора вставать!