This is a very simple yet useful article. If you are new to learning bot framework, please follow my previous article.
When we launch any bot, asyncPost method is invoked on messagesController like below.
  1. public async Task<HttpResponseMessage> Post([FromBody]Activity activity)
  2. {
  3. if (activity.Type == ActivityTypes.Message)
  4. {
  5. await Conversation.SendAsync(activity, () => new BingSearchDialog());
  6. }
  7. else
  8. {
  9. await HandleSystemMessage(activity);
  10. }
  11. var response = Request.CreateResponse(HttpStatusCode.OK);
  12. return response;
  13. }
In the above code, HandleSystemMessage method will be invoked by default.
  1. private async Task<Activity> HandleSystemMessage(Activity message)
  2. {
  3. if (message.Type == ActivityTypes.DeleteUserData)
  4. {
  5. // Implement user deletion here
  6. // If we handle user deletion, return a real message
  7. }
  8. else if (message.Type == ActivityTypes.ConversationUpdate)
  9. {
  10. // Handle conversation state changes, like members being added and removed
  11. // Use Activity.MembersAdded and Activity.MembersRemoved and Activity.Action for info
  12. // Not available in all channels
  13. IConversationUpdateActivity iConversationUpdated = message as IConversationUpdateActivity;
  14. if (iConversationUpdated != null)
  15. {
  16. ConnectorClient connector = new ConnectorClient(new System.Uri(message.ServiceUrl));
  17. foreach (var member in iConversationUpdated.MembersAdded ?? System.Array.Empty<ChannelAccount>())
  18. {
  19. // if the bot is added, then
  20. if (member.Id == iConversationUpdated.Recipient.Id)
  21. {
  22. var reply = ((Activity)iConversationUpdated).CreateReply($"Hey Welcome to search chatbot.");
  23. await connector.Conversations.ReplyToActivityAsync(reply);
  24. }
  25. }
  26. }
  27. }
  28. else if (message.Type == ActivityTypes.ContactRelationUpdate)
  29. {
  30. // Handle add/remove from contact lists
  31. // Activity.From + Activity.Action represent what happened
  32. }
  33. else if (message.Type == ActivityTypes.Typing)
  34. {
  35. // Handle knowing tha the user is typing
  36. }
  37. else if (message.Type == ActivityTypes.Ping)
  38. {
  39. }
  40. return null;
  41. }
Output

1 Comment

Join the conversation! Your thoughts help the community grow.

  • Hi sir, How Can I send welcome message in short messages instead of single long message means if i want to send "welcome" in one message and "how can I help you" in another message instead of single message. I tried by giving two different messages in the above code but it is displaying only first message.