A .NET Core 3.1 Library to help developers communicate easily with the Webex Teams API.
Available on GitHub and NuGet:
Install-Package WxTeamsSharp
Notice: 2.0.0 was a major update with a paradigm shift from static to DI. You will want to check both of the examples for ways to get started.
Take a look at the Integration Tests and Example Projects. They should cover most of the ways you can use the library. If all else fails, there's always the API Reference!
Be sure to check out the WxTeamsWebhookReciever for an ASP.NET Core example and WxTeamsConsoleBot for .NET Core Console example.
public void ConfigureServices(IServiceCollection services)
{
...
services.AddWxTeamsSharp();
...
}
public class TeamsService
{
private readonly IWxTeamsApi _wxTeamsApi;
public TeamsService(IConfiguration configuration, IWxTeamsApi wxTeamsApi)
{
var token = configuration.GetSection("BotToken").Value;
_wxTeamsApi = wxTeamsApi;
_wxTeamsApi.Initialize(token);
}
public async Task HandleCreatedMessage(WebhookData<Message> webhookData)
{
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);
}
}
}