public async Task HandleCreatedMessage(WebhookData <Message> webhookData) { try { var person = await _wxTeamsApi.GetUserAsync(webhookData.Data.AuthorId); var room = await _wxTeamsApi.CreateRoomAsync("test"); await room.DeleteAsync(); // The Message Created event will also trigger off a message created by the bot // Unless you want to end up with an endless loop of messages, you have to make // sure you're not responding to yourself. // At the same time, it's probably a good idea to consider not letting your bot // respond to other bots at all. Only people. if (person.Type != PersonType.Bot) { var message = await _wxTeamsApi.GetMessageAsync(webhookData.Data.Id); var newMessage = MessageBuilder.New() .SendToRoom(message.RoomId) .WithMarkdown("**Hi!**") .Build(); await _wxTeamsApi.SendMessageAsync(newMessage); } } catch (Exception ex) { Console.WriteLine(ex); } }
public async Task ShouldGetRoomMessagesBeforeDateViaAPI() { var dateTime = DateTimeOffset.UtcNow.AddSeconds(-5); await _wxTeamsApi.SendMessageAsync(new MessageBuilder().SendToRoom(StaticTestingValues.JRoom).WithText("Hi").Build()); var allMessages = await _wxTeamsApi.GetRoomMessagesAsync(StaticTestingValues.JRoom, max : 10000); var messages = await _wxTeamsApi.GetRoomMessagesBeforeDateAsync(StaticTestingValues.JRoom, dateTime, max : 10000); var latestMessage = allMessages.Items.First(); messages.Items.Any(x => x.Id == latestMessage.Id).Should().BeFalse(); }
public async Task StartAsync() { _token = new CancellationTokenSource(); while (!_token.IsCancellationRequested) { var newMessage = MessageBuilder.New() .SendToRoom("Y2lzY29zcGFyazovL3VzL1JPT00vOTg4ODAyOTAtYThiOC0xMWU5LWI5YWMtYWZjZDIwMDFjODI0") .WithMarkdown("Sent from **ConsoleBot**") .Build(); await _wxTeamsApi.SendMessageAsync(newMessage); await Task.Delay(TimeSpan.FromSeconds(10)); } }
public async Task ShouldGetRoomsSortedByLastActivity(string roomId, string roomName) { var newMessage = MessageBuilder.New() .SendToRoom(roomId) .WithText("Activity Test") .Build(); await _wxTeamsApi.SendMessageAsync(newMessage); var rooms = await _wxTeamsApi.GetRoomsAsync(sortBy : SortBy.LastActivity); rooms.Should().NotBeNull(); rooms.Items.Count.Should().BeGreaterOrEqualTo(2); var room = rooms.Items.First(); room.Should().NotBeNull(); room.Title.Should().EndWith(roomName); room.IsLocked.Should().BeFalse(); }