public async void CheckSentences(Microsoft.Bot.Connector.Activity activity) { var appCredentials = new MicrosoftAppCredentials(configurationRoot); //var connector = new ConnectorClient(new Uri(activity.ServiceUrl), appCredentials); var connector = new ConnectorClient(new Uri(activity.ServiceUrl)); string messages = activity.Text?.ToString().ToLower(); //Email variables var senderEmail = Environment.GetEnvironmentVariable("BOBTHEBOT_SENDER_EMAIL"); var senderName = Environment.GetEnvironmentVariable("BOBTHEBOT_SENDER_NAME"); #region Is Typing Activity // var activity = context.Activity as Activity; Trace.TraceInformation($"Type={activity.Type} Text={activity.Text}"); if (activity.Type == ActivityTypes.Message) { //var connector = new ConnectorClient(new System.Uri(activity.ServiceUrl)); var isTyping = activity.CreateReply("Nerdibot is thinking..."); isTyping.Type = ActivityTypes.Typing; await connector.Conversations.ReplyToActivityAsync(isTyping); // DEMO: I've added this for demonstration purposes, so we have time to see the "Is Typing" integration in the UI. Else the bot is too quick for us :) Thread.Sleep(2500); } #endregion await connector.Conversations.SendToConversationAsync(activity.Conversation.Id, activity : activity.CreateReply("Hello")); await connector.Conversations.ReplyToActivityAsync(activity : activity.CreateReply("Hello Reply")); if (activity.Conversation.IsGroup != null) { //Words to search for in conversation var wordsEntity = await wordCache.GetAsync(); var words = wordsEntity.Select(x => x.Word); // Get the conversation id so the bot answers. // var conversationId = activity.From.Id.ToString(); // Get a valid token //string token = await this.GetBotApiToken(); // send the message back using (var client = new System.Net.Http.HttpClient()) { string from = activity.From.Name.ToString(); string conv = activity.Conversation.Id; var group = conv.Split("|").Last().Split("\"").First(); // Set the toekn in the authorization header. //client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); if (words.Any(c => messages.Contains(c.ToLower()))) { var userToResponse = await unitOfWork.UserToReplyRepository.GetActiveUsers(); foreach (var user in userToResponse) { //send private message to user await connector.Conversations.SendToConversationAsync( user.ConversationId, activity : activity.CreateReply("Group: " + group + "\n" + "User: "******"\n" + "Message: " + "\"" + activity.Text.ToString() + "\"")); //send email to user if (user.SendEmail) { var msg = MailHelper.CreateSingleEmail( new EmailAddress(senderEmail, senderName), new EmailAddress(user.Email, user.SkypeUserName), "Subject", "", "Group: " + group + "\n" + "User: "******"\n" + "Message: " + "\"" + activity.Text.ToString() + "\""); var response2 = await sendGridClient.SendEmailAsync(msg); } } //string trustServiceUri = "https://api.skypeforbusiness.com/platformservice/botframework"; //MicrosoftAppCredentials.TrustServiceUrl(trustServiceUri); // await client.PostAsJsonAsync<ExpandoObject>( //$"https://api.skype.net/v3/conversations/{conversationId}/activities", //message as ExpandoObject); } } } else { if (messages.Contains("spamm me bob")) { var user = await unitOfWork.UserToReplyRepository.GetUserByIdAndName(activity.From.Id, activity.From.Name); if (user == null) { var newUser = new UserToReply(activity.Conversation.Id, activity.From.Id, activity.From.Name); await unitOfWork.UserToReplyRepository.InsertAsync(newUser); await unitOfWork.SaveChangesAsync(); await connector.Conversations.SendToConversationAsync(activity.Conversation.Id, activity : activity.CreateReply("User are now added as recipient")); } else { await connector.Conversations.SendToConversationAsync(activity.Conversation.Id, activity : activity.CreateReply("User already is added as recipient")); } } } //return null; }
public async Task <Result <System.Dynamic.ExpandoObject> > CheckSentences(Activity activity) { var wordsEntity = await wordCache.GetAsync(); var words = wordsEntity.Select(x => x.Word); // Get the conversation id so the bot answers. var conversationId = activity.From.Id.ToString(); // Get a valid token string token = await this.GetBotApiToken(); dynamic message = new ExpandoObject(); // send the message back using (var client = new System.Net.Http.HttpClient()) { // I'm using dynamic here to make the code simpler message.type = "message/text"; message.text = "TEST TEST TEST"; var senderEmail = Environment.GetEnvironmentVariable("BOBTHEBOT_SENDER_EMAIL"); var senderName = Environment.GetEnvironmentVariable("BOBTHEBOT_SENDER_NAME"); var recipientEmail = Environment.GetEnvironmentVariable("BOBTHEBOT_RECIPIENT_EMAIL"); var recipientName = Environment.GetEnvironmentVariable("BOBTHEBOT_RECIPIENT_NAME"); string messages = activity.Text.ToString(); string from = activity.From.Name.ToString(); string conv = activity.Conversation.Id; var group = conv.Split("|").Last().Split("\"").First(); if (words.Any(c => messages.ToLower().Contains(c.ToLower()))) { //var msg = MailHelper.CreateSingleEmail( // new EmailAddress(senderEmail, senderName), // new EmailAddress("*****@*****.**", recipientName), // "Subject", // "", // messages + " from " + from + " at " + group); //var response2 = await sendGridClient.SendEmailAsync(msg); // Set the toekn in the authorization header. client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token); var appCredentials = new MicrosoftAppCredentials(configurationRoot); var connector = new ConnectorClient(new Uri(activity.ServiceUrl), appCredentials); // var asd = await connector.Conversations.GetConversationMembersAsync(qwe); //var newActovity = new Activity(id: "2cb6eb60-761b-11e8-b7ed-f79c3f4b062e", // serviceUrl:activity.ServiceUrl, // replyToId: "9aec9e40-7611-11e8-b7ed-f79c3f4b062e", // type:"text", // textFormat:"plain", // channelId:"emulator", // channelData: "9aec9e40-7611-11e8-b7ed-f79c3f4b062e"); //var qwfsv = activity.Recipient; //activity.Recipient.Name = "Bot"; //activity.Recipient.Id = "bea98650-748a-11e8-a3ac-fb4c46d160e7"; var length = (activity.Text ?? string.Empty).Length; var reply = activity.CreateReply($"You send {activity.Text} which was{length} characters!"); //var asd = new Activity(ChannelAccount(r reply.Recipient.Id == "bea98650-748a-11e8-a3ac-fb4c46d160e7"; // var asd = new Activity() await connector.Conversations.ReplyToActivityAsync(reply); //var asd = await connector.Conversations.CreateConversationAsync(new ConversationParameters()); //await client.PostAsJsonAsync( //"http://*****:*****@contoso.com", "Agent")); ConversationParameters parameters = new ConversationParameters(true, new ChannelAccount("sip:[email protected]", "Bot"), participants, "TestTopic"); ConversationResourceResponse response = connector.Conversations.CreateConversationAsync(parameters).Result; // await client.PostAsJsonAsync<ExpandoObject>( //$"https://api.skype.net/v3/conversations/{conversationId}/activities", //message as ExpandoObject); } } return(Result.Ok(message)); }