Typing indicator for bot framework in C#

时光怂恿深爱的人放手 提交于 2020-08-27 06:29:40

问题


I have a bot in Bot framework. Once user responds to the bot and bot is processing it, I want to show the typing indicator to the user in the meanwhile.

It is possible in Nodejs here - https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-send-typing-indicator

But how can I implement it in C#?


回答1:


You have to send an activity of type Typing.

You can do it like that:

// Send "typing" information
Activity reply = activity.CreateReply();
reply.Type = ActivityTypes.Typing;
reply.Text = null;
ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl));
await connector.Conversations.ReplyToActivityAsync(reply);



回答2:


You can also create the message using context.MakeMessage if you need to instantly respond in MessageReceivedAsync of a dialog.

var typingMsg = context.MakeMessage();
typingMsg.Type = ActivityTypes.Typing;
typingMsg.Text = null;
await context.PostAsync(typingMsg);

The typing indicator is replaced by the next message sent (at least in the Bot Framework emulator). This doesn't seem to work in Slack.




回答3:


Try use this:

var reply = activity.CreateReply();
reply.Text = null;
reply.Type = ActivityTypes.Typing;

await context.PostAsync(reply);



回答4:


For showing typing indicator while bot is processing just add in OnTurnAsync function before await base.OnTurnAsync(turnContext, cancellationToken); :

await turnContext.SendActivityAsync(new Activity { Type = ActivityTypes.Typing }, cancellationToken);



回答5:


If V4, following lines of code can help. Keep this code at such a place so that it gets executed everytime during the dialogue flow.

        IMessageActivity reply1 = innerDc.Context.Activity.CreateReply();
        reply1.Type = ActivityTypes.Typing;
        reply1.Text = null;
        await innerDc.Context.SendActivityAsync( reply1, cancellationToken: cancellationToken);
        await Task.Delay(1000);


来源:https://stackoverflow.com/questions/47889917/typing-indicator-for-bot-framework-in-c-sharp

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!