Как продолжить диалог, не отвечая на сообщение кнопками - PullRequest
0 голосов
/ 10 января 2019

Я отправляю сообщение, используя PromptCustomDialog. Если человек не может ответить на вопрос в течение некоторого времени, как можно отправить следующее сообщение? Буду благодарен за примеры.

await context.Forward(new PromptCustomDialog(message, answers), Complete, context.MakeMessage(), CancellationToken.None);

public async Task Complete(IDialogContext context, IAwaitable<string> result)
   {
        var res = await result;
        string response = res;
        await Choose(context, response);
    }

1 Ответ

0 голосов
/ 11 января 2019

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...