mirror of
https://github.com/Bubuni-Team/telegram-bot.git
synced 2026-07-31 00:29:24 +03:00
41 lines
1.1 KiB
C#
41 lines
1.1 KiB
C#
|
|
#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);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|