2017-01-09 45 views
2

我正在使用c#.net和LUIS認知服務上的MicrofsoftBotFramework開發chatbot。在Microsoft botframework中回覆「正在輸入」消息

我想,當用戶鍵入它應打字或BOT答覆是打字..

public async Task<HttpResponseMessage> Post([FromBody]Activity activity) 
      { 
       Trace.TraceInformation($"Type={activity.Type} Text={activity.Text}"); 

       if (activity.Type == ActivityTypes.Message) 
       { 
        //await Microsoft.Bot.Builder.Dialogs.Conversation.SendAsync(activity,() => new ContactOneDialog()); 

        //Implementation of typing indication 
        ConnectorClient connector = new ConnectorClient(new System.Uri(activity.ServiceUrl)); 
        Activity isTypingReply = activity.CreateReply("Shuttlebot is typing..."); 
        isTypingReply.Type = ActivityTypes.Typing; 
        await connector.Conversations.ReplyToActivityAsync(isTypingReply); 

        await Conversation.SendAsync(activity,() => 
        new ExceptionHandlerDialog<object>(new ShuttleBusDialog(), displayException: true));        
       } 
       else 
       { 
        HandleSystemMessage(activity); 
       } 
       var response = Request.CreateResponse(System.Net.HttpStatusCode.OK); 
       return response; 
      } 

此代碼也工作,但它說:「輸入」動畫和去下一條消息。但我想它應該顯示我的消息,我已經設置爲「Shuttlebot正在輸入...

see the image here

回答

3

大部分渠道的本地支持「正在輸入」的通知。只需發送打字活動作爲消息:

var reply = activity.CreateReply(String.Empty); 
reply.Type = ActivityTypes.Typing; 
await activityContext.SendResponse(reply);