Всем привет. Решил я переписать своего бота с Python на .NET 8 Зависимости: Для работы кода, необходимо установить пакет Newtonsoft.Json Исходный код с пояснениями: using Newtonsoft.Json.Linq; class Program { private static HttpClient client = new(); private static string token = ""; // здесь хранится токен бота private static long offset = 0; // необходима, чтобы стирать уже обработанные сообщения static async Task Main() { while (true) { string getUpdates = await client.GetStringAsync($"https://api.telegram.org/bot{token}/getUpdates{(offset > 0 ? $"?offset={offset}" : "")}"); // получаем все события бота JObject result = JObject.Parse(getUpdates); // получаем json if (result["result"].Count() > 0) // если событий больше нуля { offset = result["result"][0]["update_id"].Value<long>() + 1; // получаем offset, чтобы стереть это событие string message = result["result"][0]["message"]["text"].Value<string>(); // получаем сообщение пользователя long chat_id = result["result"][0]["message"]["chat"]["id"].Value<long>(); // получаем айди чата await client.GetAsync($"https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}&text={message}"); // отправляем сообщение в ответ } await Task.Delay(300); // задержка в 300 милисекунд, чтобы избежать ошибку 429. При необходимости, можно уменьшить или увеличить значение } } } CSHARP using Newtonsoft.Json.Linq; class Program { private static HttpClient client = new(); private static string token = ""; // здесь хранится токен бота private static long offset = 0; // необходима, чтобы стирать уже обработанные сообщения static async Task Main() { while (true) { string getUpdates = await client.GetStringAsync($"https://api.telegram.org/bot{token}/getUpdates{(offset > 0 ? $"?offset={offset}" : "")}"); // получаем все события бота JObject result = JObject.Parse(getUpdates); // получаем json if (result["result"].Count() > 0) // если событий больше нуля { offset = result["result"][0]["update_id"].Value<long>() + 1; // получаем offset, чтобы стереть это событие string message = result["result"][0]["message"]["text"].Value<string>(); // получаем сообщение пользователя long chat_id = result["result"][0]["message"]["chat"]["id"].Value<long>(); // получаем айди чата await client.GetAsync($"https://api.telegram.org/bot{token}/sendMessage?chat_id={chat_id}&text={message}"); // отправляем сообщение в ответ } await Task.Delay(300); // задержка в 300 милисекунд, чтобы избежать ошибку 429. При необходимости, можно уменьшить или увеличить значение } } }