コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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();
        }
コード例 #3
0
        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));
            }
        }
コード例 #4
0
        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();
        }