mirror of
https://github.com/Bubuni-Team/telegram-bot.git
synced 2026-07-31 00:29:24 +03:00
Initial webhook support
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user