Initial webhook support

This commit is contained in:
2024-01-28 18:51:18 +03:00
parent aaf27a9a06
commit 1088037e58
4 changed files with 125 additions and 2 deletions
+40
View File
@@ -0,0 +1,40 @@
#nullable enable
using BotFramework.Abstractions.UpdateProvider;
using BotFramework.Config;
using Microsoft.Extensions.Options;
using System.Threading;
using System.Threading.Tasks;
using Telegram.Bot;
namespace Kruzya.TelegramBot.Core
{
public class WebhookAspNetProvider : IWebhookProvider
{
private readonly ITelegramBotClient _client;
private readonly BotConfig _config;
private readonly string? _secretToken;
public WebhookAspNetProvider(ITelegramBotClient client, IOptions<BotConfig> config)
{
_client = client;
_config = config.Value;
_secretToken = _config.Webhook.SecretToken;
if (string.IsNullOrWhiteSpace(_secretToken))
{
_secretToken = null;
}
}
public async Task StartAsync(CancellationToken token)
{
await _client.SetWebhookAsync(_config.Webhook.Url, secretToken: _secretToken, cancellationToken: token);
}
public async Task StopAsync(CancellationToken token)
{
await _client.DeleteWebhookAsync(cancellationToken: token);
}
}
}