Как поставить реакцию на сообщение Telegram ботом в C#? Telegram.Bot
Я написал простенького бота с использованием библиотеки Telegram.Bot. Теперь хочу поставить реакцию на сообщение. Недавно это добавили в API ботов. Функция "setMessageReaction". Но беда в том, что библиотека Telegram.Bot не обновляется с мая 2023. Она не знает эту функцию. Как мне отправить реакцию через API? Получится ли это совместить с текущим проектом построенном на Telegram.Bot? Или может, вообще, есть более удобная библиотека для C#?
Visual studio 2022 C# Пакет: Telegram.Bot
Ответы (1 шт):
Автор решения: MoverSoft
→ Ссылка
Через библиотеки не смог решить задачу. Пришлось вручную сделать через Telegram API:
static HttpClient httpClient = new HttpClient();
//Отправка реакции вручную через Telegram API
static private async Task SetReactionAsync(long chatId, int messageId, string emoji)
{
string url = $"https://api.telegram.org/bot{token}/setMessageReaction";
var data = new
{
chat_id = chatId,
message_id = messageId,
reaction = new[]
{
new { type = "emoji", emoji = emoji }
},
is_big = true
};
var jsonData = new StringContent(Newtonsoft.Json.JsonConvert.SerializeObject(data), Encoding.UTF8, "application/json");
// Отправим запрос к API
var response = await httpClient.PostAsync(url, jsonData);
// Обработаем ответ
if (!response.IsSuccessStatusCode)
{
Console.WriteLine("Произошла ошибка при попытке поставить реакцию.");
Console.WriteLine($"Код ошибки: {response.StatusCode}");
string errorResponse = await response.Content.ReadAsStringAsync();
Console.WriteLine($"Текст ошибки: {errorResponse}");
}
}