Skip to content
This repository has been archived by the owner on May 12, 2024. It is now read-only.

Latest commit

 

History

History
88 lines (63 loc) · 2.58 KB

README.md

File metadata and controls

88 lines (63 loc) · 2.58 KB

Nuget

BotFramework

BotFramework - фреймворк, который упрощает процедуру создания ботов за счет абстрагирования над API конкретных месенджеров.

Startup

Начало работы:

Настройка авторизации

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();