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