Все события, которые можно обрабатывать в объекте `TelegramBotClient` (`_botClient`) из библиотеки Telegram.Bot. Вот краткое описание каждого из них: ### 1. **OnError** - **Описание**: Событие, которое вызывается, когда происходит ошибка в процессе работы с API Telegram. - **Использование**: Это событие позволяет вам обрабатывать и логировать ошибки, которые могут возникнуть при отправке или получении данных от Telegram. - **Пример**: ```csharp _botClient.OnError += async (sender, args) => { Console.WriteLine(quot;Ошибка: {args.Exception.Message}"); }; ``` ### 2. **OnMessage** - **Описание**: Событие, которое срабатывает при получении нового сообщения от пользователя. - **Использование**: Вы можете использовать это событие для обработки входящих текстовых сообщений, фотографий, документов и других типов сообщений. - **Пример**: ```csharp _botClient.OnMessage += async (sender, args) => { var message = args.Message; if (message.Text != null) { await _botClient.SendTextMessageAsync(message.Chat.Id, quot;Вы написали: {message.Text}"); } }; ``` ### 3. **OnUpdate** > - Если **событие `OnMessage` не настроено**, то **событие `OnUpdate` будет обрабатывать все обновления**, включая сообщения. Это означает, что `OnUpdate` становится универсальным обработчиком, который захватывает все типы событий. > >- Если **событие `OnMessage` настроено**, то **`OnUpdate` будет обрабатывать только те обновления, которые не являются сообщениями**. В этом случае `OnMessage` берет на себя обработку всех типов сообщений (новых, отредактированных и т.д.), а `OnUpdate` будет отвечать за все остальные виды обновлений, такие как callback-запросы, inline-режимы, изменения участников чата, опросы и т.д. - **Описание**: Событие, которое срабатывает при получении любого обновления (update) от Telegram, включая сообщения, callback-запросы, обновления inline-клавиатур и т.д. - **Использование**: Используется для обработки всех видов обновлений, которые бот может получить, не ограничиваясь только сообщениями. - **Пример**: ```csharp _botClient.OnUpdate += async (sender, args) => { var update = args.Update; if (update.CallbackQuery != null) { await _botClient.AnswerCallbackQueryAsync(update.CallbackQuery.Id, "Вы нажали кнопку!"); } }; ``` ### 4. **OnApiResponseReceived** - **Описание**: Событие, которое вызывается после того, как бот получает ответ от API Telegram на любой запрос. - **Использование**: Это событие полезно для логирования или анализа ответов, которые бот получает от API Telegram, например, для проверки корректности ответов или их времени обработки. - **Пример**: ```csharp _botClient.OnApiResponseReceived += async (sender, args) => { Console.WriteLine(quot;Ответ от API: {args.MethodName} вернул {args.Response}"); }; ``` ### 5. **OnMakingApiRequest** - **Описание**: Событие, которое вызывается непосредственно перед отправкой запроса к API Telegram. - **Использование**: Это событие можно использовать для логирования запросов, которые бот отправляет, или для их модификации перед отправкой. - **Пример**: ```csharp _botClient.OnMakingApiRequest += async (sender, args) => { Console.WriteLine(quot;Запрос: {args.MethodName} с параметрами {args.Parameters}"); }; ``` Эти события позволяют вам глубже контролировать работу вашего бота, обрабатывать различные ситуации, такие как ошибки, сообщения, ответы от API и запросы к API. Использование этих событий помогает улучшить отладку и масштабируемость вашего кода.