2026-08-28 12:03:36 +00:00
|
|
|
|
using Volo.Abp.Settings;
|
|
|
|
|
|
|
|
|
|
|
|
namespace Sozsoft.Sender.Telegram;
|
|
|
|
|
|
|
|
|
|
|
|
public interface ITelegramHttpClient
|
|
|
|
|
|
{
|
2026-10-17 18:51:10 +00:00
|
|
|
|
Task<TelegramSendResultDto?> SendMessageAsync(string ChatId, string Message);
|
2026-08-28 12:03:36 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
2026-10-17 18:51:10 +00:00
|
|
|
|
public sealed class TelegramHttpClient : SettingHttpClientBase, ITelegramHttpClient
|
2026-08-28 12:03:36 +00:00
|
|
|
|
{
|
2026-10-17 18:51:10 +00:00
|
|
|
|
public TelegramHttpClient(HttpClient httpClient, ISettingProvider settingProvider)
|
|
|
|
|
|
: base(httpClient, settingProvider)
|
2026-08-28 12:03:36 +00:00
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-10-17 18:51:10 +00:00
|
|
|
|
public async Task<TelegramSendResultDto?> SendMessageAsync(string ChatId, string Message)
|
2026-08-28 12:03:36 +00:00
|
|
|
|
{
|
2026-10-17 18:51:10 +00:00
|
|
|
|
var url = await GetSettingAsync(TelegramSettingNames.Url);
|
|
|
|
|
|
var botToken = await GetSettingAsync(TelegramSettingNames.BotToken);
|
|
|
|
|
|
var parseMode = await GetSettingAsync(TelegramSettingNames.ParseMode);
|
2026-08-28 12:03:36 +00:00
|
|
|
|
|
2026-10-17 18:51:10 +00:00
|
|
|
|
// Bot API hatayı 4xx gövdesinde açıklar; durum kodunu fırlatmak açıklamayı kaybettirir.
|
|
|
|
|
|
return await PostJsonAsync<TelegramSendResultDto>(
|
|
|
|
|
|
$"{url?.TrimEnd('/')}/bot{botToken}/sendMessage",
|
2026-08-28 12:03:36 +00:00
|
|
|
|
new TelegramPostMessageInput
|
|
|
|
|
|
{
|
|
|
|
|
|
chat_id = ChatId,
|
|
|
|
|
|
text = Message,
|
|
|
|
|
|
parse_mode = parseMode.IsNullOrWhiteSpace() ? null : parseMode,
|
|
|
|
|
|
disable_web_page_preview = true
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|