BotFramework - фреймворк, который упрощает процедуру создания ботов за счет абстрагирования над API конкретных месенджеров.
Начало работы:
TSettings - класс, в котором описаны настройки бота. Пример такого класса (данный класс доступен из коробки)
public class TelegramSettings
{
public TelegramSettings(string accessToken)
{
AccessToken = accessToken;
}
public TelegramSettings()
{
}
public string AccessToken { get; set; }
}
Задать настройки можно с помощью json файла.
var settings = new ConfigSettingsProvider<TSettings>("filename");
Вид JSON конфига для TelegramSettings
{
"AccessToken" : "token"
}
Для упрощения процесса разработки, настройки можно получить из строки с токеном
var settings = new ConstSettingsProvider<TSettings>(new TSettings(token));
Чтобы добавить команду, ваш класс должен реализовывать интерфейс IBotSyncCommand или IBotAsyncCommand
Пример команды Ping
[BotCommandDescriptor("ping", "Answer pong on ping message")]
public class PingCommand : IBotAsyncCommand
{
public Result CanExecute(CommandContainer args) => Result.Ok();
public Task<IBotMessage> Execute(CommandContainer args)
{
IBotMessage message = new BotTextMessage("Pong!");
return Task.FromResult(message);
}
}
Пример создания бота с командой Ping
var telegramToken = string.Empty;
var settings = new ConstSettingsProvider<TelegramSettings>(new TelegramSettings(telegramToken));
var api = new TelegramApiProvider(settings);
BotManager botManager = new BotManagerBuilder()
.SetPrefix('!')
.SetCaseSensitive(false)
.AddCommand(PingCommand.Descriptor)
.Build(api);
botManager.Start();