Syn Bot /OSCOVA 发送应答(5)

当Intent被调用时可以发送应答消息给bot的用户,当应答生成时,将产生ResponseReceived 事件。

 

属性描述
Text 文本消息
Format 格式: HtmlMarkdownPlain 和 Xml.
Hint 对于bot期望的下次用户的输入的提示
Type 应答类型: message 或 other.

 简单应答

[Expression("Hello Bot")]
public void HelloBot(Context context, Result result)
{
    result.SendResponse("Hello Bot developer!");
}

接收应答

var bot = new OscovaBot();
bot.MainUser.ResponseReceived += (o, args) =>
{
    Console.WriteLine($"Bot: {args.Response.Text}");
};

HTML格式

[Expression("Hello Bot")]
public void HelloBot(Context context, Result result)
{
    var response = new Response
    {
        Text = "<b>Hello bot developer!</b>",
        Format = ResponseFormat.Html
    };

    result.SendResponse(response);
}

延时的回复

[Expression("Hello Bot")]
public void HelloBot(Context context, Result result)
{
result.SendResponse("Hello Bot Developer!", TimeSpan.FromSeconds(2));
result.SendResponse("Glad you are here.", TimeSpan.FromSeconds(5));
}

对于工作的定时响应,外部定时器实现是必不可少的

var bot = new OscovaBot();
var timer = new Timer { Interval = 1000 };

timer.Elapsed += (sender, eventArgs) =>
{
    bot.Timer.PerformTick();
};

timer.Start();
posted @ 2018-05-24 11:07  道木先生  阅读(155)  评论(1编辑  收藏  举报