Proveedor de registro para Telegram (.NET 5 / .NET Core)

No es ningún secreto que Telegram es actualmente uno de los mensajeros más populares. Especialmente entre los profesionales de TI. Es fácil de usar, no tiene anuncios incrustados y funciona de manera muy estable. La mayor parte del tiempo me comunico tanto por cuestiones laborales como personales en este mensajero. Por eso, un día pensé que sería conveniente para que en el mismo messenger pudiera recibir notificaciones sobre el funcionamiento de algunos de mis servicios. En ese momento, estaba trabajando activamente en la integración del proyecto // devdigest y Telegram, así que usando el mismo SDK nativo de Telegram Bot, implementé rápidamente el registrador.





Hace unos días decidí volver a este proyecto, limpiar un poco y refactorizar el código, y luego ponerlo a disposición del público; tal vez la capacidad de obtener registros en Telegram sea útil para otra persona.





Así vienen los logs de telegram de uno de los proyectos que estoy haciendo
Así vienen los logs de telegram de uno de los proyectos que estoy haciendo

Formación

Antes de continuar con la configuración del registrador en sí, deberá completar algunos pasos preliminares. Es decir, cree un canal (público o privado) donde se mostrarán los registros y cree un bot en telegramas, a través del cual se implementará el proceso de publicación de registros.





Telegram, .  , Telegram . , , , .





. - . - .





.

@JsonDumpBot. . :





{
  "update_id": 111001100,
  "message": {
    "message_id": 123456,
    "from": {
      "id": 12345678,
      "is_bot": false,
      "first_name": "FirstName",
      "username": "username",
      "language_code": "en"
    },
    "chat": {
      "id": 123456,
      "first_name": "FirstName",
      "username": "username",
      "type": "private"
    },
    "date": 1111111111,
    "forward_from_chat": {
      "id": -1123456789101,
      "title": "torf.tv logs",
      "type": "channel"
    },
    "forward_from_message_id": 1,
    "forward_date": 1111111111,
    "text": "test"
  }
}
      
      



forward_from_chat -> id





, .





TelegramLoggerOptions, :





  • AccessToken – ;





  • ChatId – (, ), , ;





  • LogLevel – , . Warning, Error;





  • Source – . , ;





– , .





TelegramLoggerOptions.





var options = new TelegramLoggerOptions
{
    AccessToken = "1234567890:AAAaaAAaa_AaAAaa-AAaAAAaAAaAaAaAAAA",
    ChatId = "-0000000000000",
    LogLevel = LogLevel.Information,
    Source = "Human Readable Project Name"
};
      
      



- AddTelegram():





builder
  .ClearProviders()
  .AddTelegram(options)
  .AddConsole();
      
      



.





appconfig.json

, :





{
  "Logging": {
    "LogLevel": {
      "Default": "Information",
      "Microsoft": "Warning",
      "Microsoft.Hosting.Lifetime": "Information"
    },
    "Telegram": {
      "LogLevel": "Warning",
      "AccessToken": "1234567890:AAAaaAAaa_AaAAaa-AAaAAAaAAaAaAaAAAA",
      "ChatId": "@channel_name",
      "Source": "Human Readable Project Name"
    }
  },
  "AllowedHosts": "*"
}

      
      



A continuación, se debe pasar una instancia de IConfiguration al método de extensión AddTelegram (),





public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureLogging((context, builder) =>
        {
            if (context.Configuration != null)
                builder
                    .AddTelegram(context.Configuration)
                    .AddConsole();
        })
        .ConfigureWebHostDefaults(webBuilder => { webBuilder.UseStartup<startup>(); });

      
      



Un ejemplo está aquí





Instalación

Puede instalar el registrador de NuGet o integrar el código directamente en su proyecto. La biblioteca se distribuye bajo la licencia MIT .












All Articles