sozsoft-platform/api/modules/Sozsoft.Sender/Telegram/TelegramHttpClient.cs

35 lines
1.2 KiB
C#
Raw Normal View History

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